summaryrefslogtreecommitdiff
path: root/git-mv.perl
diff options
context:
space:
mode:
Diffstat (limited to 'git-mv.perl')
-rwxr-xr-xgit-mv.perl8
1 files changed, 8 insertions, 0 deletions
diff --git a/git-mv.perl b/git-mv.perl
index fe9c40e1b9..75aa8feeb6 100755
--- a/git-mv.perl
+++ b/git-mv.perl
@@ -62,9 +62,17 @@ else {
$dstDir = "";
}
+my $subdir_prefix = `git rev-parse --show-prefix`;
+chomp($subdir_prefix);
+
+# run in git base directory, so that git-ls-files lists all revisioned files
+chdir "$GIT_DIR/..";
+
# normalize paths, needed to compare against versioned files and update-index
# also, this is nicer to end-users by doing ".//a/./b/.//./c" ==> "a/b/c"
for (@srcArgs, @dstArgs) {
+ # prepend git prefix as we run from base directory
+ $_ = $subdir_prefix.$_;
s|^\./||;
s|/\./|/| while (m|/\./|);
s|//+|/|g;