Ticket #51292: patch-fix-unique-uniquebase.diff

File patch-fix-unique-uniquebase.diff, 1.7 KB (added by raimue (Rainer Müller), 9 years ago)
  • tardiff

    Upstream: https://anonscm.debian.org/cgit/collab-maint/tardiff.git/tree/debian/patches/fix-unique-uniquebase.diff
    
    Patch to allow to compare to tar balls with the same base
    directory. Also fixes an issue with listing a directory as present in
    the wrong tar ball.
    
    Author: Axel Beckert <abe@debian.org>
    
     
    8080sub analyzetar{
    8181        my $filelist = shift(@_);
    8282        my $filehash = shift(@_);
     83        my $tarball = shift(@_);
    8384
    8485        my %files = %{$filehash};
    8586
     
    9293                if(!$uniquebase){
    9394                        $uniquebase = $base;
    9495                }else{
    95                         ($base eq $uniquebase) or die "$tarball1 contains different base dirs: $base and $uniquebase";
     96                        ($base eq $uniquebase) or die "$tarball contains different base dirs: $base and $uniquebase";
    9697                }
    9798                if($files{$remainder}){
    9899                        $files{$remainder} = "__both";
    99100                }else{
    100                         $files{$remainder} = "$uniquebase";
     101                        $files{$remainder} = "$tarball";
    101102                }
    102103        }
    103104
     
    174175
    175176        my %files;
    176177
    177         my ($base1, %files) = analyzetar($filelist1, \%files);
    178         my ($base2, %files) = analyzetar($filelist2, \%files);
     178        my ($base1, %files) = analyzetar($filelist1, \%files, $tarball1);
     179        my ($base2, %files) = analyzetar($filelist2, \%files, $tarball2);
    179180
    180181        foreach my $file(sort(keys(%files))){
    181182                next if $file eq "";
     
    196197                        if($opt_list and not $modified){
    197198                                print "  $file\n";
    198199                        }
    199                 }elsif($base eq $base1){
     200                }elsif($base eq $tarball1){
    200201                        print "- $file\n";
    201                 }elsif($base eq $base2){
     202                }elsif($base eq $tarball2){
    202203                        print "+ $file\n";
    203204                }else{
    204205                        print "? $file\n";