Commits

Anonymous committed b18c74c Merge

Merge branch 'th/difftool-diffall'

Finishing touches to difftool --dirdiff.

* th/difftool-diffall:
difftool: only copy back files modified during directory diff

  • Participants
  • Parent commits a122c42, 05df532

Comments (0)

Files changed (1)

File git-difftool.perl

 use warnings;
 use File::Basename qw(dirname);
 use File::Copy;
+use File::Compare;
 use File::Find;
 use File::stat;
 use File::Path qw(mkpath);
 	# files were modified during the diff, then the changes
 	# should be copied back to the working tree
 	for my $file (@working_tree) {
-		copy("$b/$file", "$workdir/$file") or die $!;
-		chmod(stat("$b/$file")->mode, "$workdir/$file") or die $!;
+		if (-e "$b/$file" && compare("$b/$file", "$workdir/$file")) {
+			copy("$b/$file", "$workdir/$file") or die $!;
+			chmod(stat("$b/$file")->mode, "$workdir/$file") or die $!;
+		}
 	}
 } else {
 	if (defined($prompt)) {