From: Junio C Hamano Date: Tue, 24 Jul 2012 03:56:17 +0000 (-0700) Subject: Merge branch 'th/difftool-diffall' X-Git-Tag: v1.7.12-rc0~3 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/b18c74c92f53572896b6f98cf69fe08c65ae2455?hp=a122c42e6fb5e8bd3b42634be50c4d48b2cb6599 Merge branch 'th/difftool-diffall' Finishing touches to difftool --dirdiff. * th/difftool-diffall: difftool: only copy back files modified during directory diff --- diff --git a/git-difftool.perl b/git-difftool.perl index ae1e0525d8..c0798540ad 100755 --- a/git-difftool.perl +++ b/git-difftool.perl @@ -15,6 +15,7 @@ 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 @@ sub write_to_file # 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)) {