ClearCase-SyncTree
view release on metacpan or search on metacpan
SyncTree.pm view on Meta::CPAN
}
}
sub mkrellink {
my ($self, $src) = @_;
my $txt = src_rlink($src);
my $sbase = $self->srcbase;
return $txt unless $self->{ST_RELLINKS} and ($txt =~ /^$sbase/);
$txt =~ s%^$sbase/(.*)%$1%;
$src =~ s%^$sbase/(.*)%$1%;
my @t = split m%/%, $txt;
my @s = split m%/%, $src;
my $i = 0;
while ($t[$i] eq $s[$i]) {
$i++;
shift @t;
shift @s;
}
while ($i++ < $#s) { unshift @t, '..'; }
$txt = join '/', @t;
return $txt;
}
SyncTree.pm view on Meta::CPAN
$ln->args($dirext, $dst)->system;
# Need to reevaluate all the files under this dir
# The case of implicit dirs, is recorded as '.'
my $d = $dref->{$dst} eq '.'? '' : $dref->{$dst} . '/';
$self->skimdir($dst, $d) if $self->remove;
my $cmp = $self->no_cmp ? undef : $self->cmp_func;
my @keys = sort $d? grep m%^\Q$d\E%, keys %{$self->{ST_ADD}}
: keys %{$self->{ST_ADD}};
for my $e (@keys) {
my $edst = join '/', $self->dstbase, $e;
my @intdir = split m%/%, $e;
pop @intdir;
if (@intdir) {
my $dd = $self->dstbase;
my $pf = '';
while (my $id = shift @intdir) {
$dd = join '/', $dd, $id;
$pf = $pf . $id . '/';
$self->skimdir($dd, $pf) if -d $dd && !$dfound{$dd}++;
}
}
( run in 0.486 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )