さっきのsvkpath.plの修正版
File::HomeDir
と Path::Class
を使わずに愚直にかいてみたがあまり体感変わらず、ためしに YAML
を YAML::Syck
にしてみたら激早くなった。
#!/usr/bin/env perl
use strict;
use warnings;
use YAML::Syck;
my $path = $ARGV[0] or die;
my $config = YAML::Syck::LoadFile( $ENV{HOME} . '/.svk/config' );
my $hash = $config->{checkout}{hash};
my @path = split '/', $path;
my $svkinfo;
do {
$svkinfo = $hash->{ join '/', @path }
} while !$svkinfo and pop @path;
exit unless $svkinfo;
if (my ($trunk, $branch) = $svkinfo->{depotpath} =~ m!(?:/(trunk)|/(branches/[^/]+))$!) {
print '(' . ($trunk || $branch) . ')';
}
こんな感じ。
このくらいの体感速度なら割と普通に使えそう。