git-mv: follow -k request even on failing renames
[gitweb.git] / git-mv.perl
index ac19876fecbd2758e2782ae3f3423a727a036bd3..65b1dcfdf2314e2eb8b7bfd1124210ad73269b10 100755 (executable)
@@ -108,7 +108,7 @@ ()
        }
     }
     
-    if (($bad eq "") && ($src eq $dstDir)) {
+    if (($bad eq "") && ($dst =~ /^$src\//)) {
        $bad = "can not move directory '$src' into itself";
     }
 
@@ -151,6 +151,11 @@ ()
     if (!$opt_n) {
        if (!rename($src,$dst)) {
            $bad = "renaming '$src' failed: $!";
+           if ($opt_k) {
+               print "Warning: skipped: $bad\n";
+               $bad = "";
+               next;
+           }
            last;
        }
     }