X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=git-difftool.perl;h=c0798540adee04cb7cfb6fd04ef3541a1fcbb762;hb=cf7864837c12c396ad5927cb6c0bbaa790cda7ad;hp=ae1e0525d89181f8adbe288b62e107b8dadb8ca1;hpb=4acf8e85dc088c42843221348e9c039d9bd23ecc;p=~andy%2Fgit diff --git a/git-difftool.perl b/git-difftool.perl index ae1e0525d..c0798540a 100755 --- a/git-difftool.perl +++ b/git-difftool.perl @@ -15,6 +15,7 @@ use strict; use warnings; use File::Basename qw(dirname); use File::Copy; +use File::Compare; use File::Find; use File::stat; use File::Path qw(mkpath); @@ -336,8 +337,10 @@ if (defined($dirdiff)) { # 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)) {