Git.pm: Handle failed commands' output
[gitweb.git] / git-mv.perl
index fe9c40e1b9ed81f0494bf2c20239c6a5d5b76d30..75aa8feeb6201c54e55bfaca0cc178c53891e776 100755 (executable)
@@ -62,9 +62,17 @@ ()
     $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;