git-mv dest ending with slash would deletes file only
Hi,
I just tried to use the git-mv to move several files to another
directory. As the bash's auto completetion leaves the dest path ending with slash, the command become:
$ git-mv entry.c Documentation/ Ignoring path Documentation//entry.c
$ git status # # Updated but not checked in: # (will commit) # # deleted: entry.c #
Checked from the source, git-update-index do not accept
multiple-successive-slashes (verify_path()@update-index.c), which should be considered as one slash according to POSIX standard.
However, changes the verify_path() function do not help. It seems
that git consider file with single slash and multiple slashes as two different object. Therefore, I added a line inside git-mv script to replace multiple-successive-slashes as one and it works fine in my system now.
git-mv.perl +1 -0
@@ -92,6 +92,7 @@ while(scalar @srcArgs > 0) { $src = shift @srcArgs; $dst = shift @dstArgs; $bad = ""; + $dst =~ s/\/+/\//g; if ($opt_v) { print "Checking rename of '$src' to '$dst'\n";
update-index.c +0 -0
Quoted 2 lines · Ben Lau
$ git-mv entry.c Documentation/ Ignoring path Documentation//entry.c
Instead of mangling all destination paths, I only would strip a trailing slash of the destination argument. See my other mail with the patch.
Thanks for noting this bug,
Josef