X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-mv.perl;h=2ea852c9185743d5b84523698cbffaaffb238543;hb=5be4eabf90a4f6d14d3ae16772e6b2e063d71587;hp=b6c0b4881845bf6a8d9681817fc540a2003b889e;hpb=423325a2d24638ddcc82ce47be5e40be550f4507;p=git.git diff --git a/git-mv.perl b/git-mv.perl index b6c0b488..2ea852c9 100755 --- a/git-mv.perl +++ b/git-mv.perl @@ -62,7 +62,7 @@ my $safesrc; my (%overwritten, %srcForDst); $/ = "\0"; -open(F,"-|","git-ls-files","-z") +open(F, 'git-ls-files -z |') or die "Failed to open pipe from git-ls-files: " . $!; @allfiles = map { chomp; $_; } ; @@ -75,6 +75,15 @@ while(scalar @srcArgs > 0) { $dst = shift @dstArgs; $bad = ""; + for ($src, $dst) { + # Be nicer to end-users by doing ".//a/./b/.//./c" ==> "a/b/c" + s|^\./||; + s|/\./|/| while (m|/\./|); + s|//+|/|g; + # Also "a/b/../c" ==> "a/c" + 1 while (s,(^|/)[^/]+/\.\./,$1,); + } + if ($opt_v) { print "Checking rename of '$src' to '$dst'\n"; }