projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git-mv: follow -k request even on failing renames
[git.git]
/
git-mv.perl
diff --git
a/git-mv.perl
b/git-mv.perl
index
990bec5
..
65b1dcf
100755
(executable)
--- a/
git-mv.perl
+++ b/
git-mv.perl
@@
-108,7
+108,7
@@
while(scalar @srcArgs > 0) {
}
}
}
}
- if (($bad eq "") && ($
src eq $dstDir
)) {
+ if (($bad eq "") && ($
dst =~ /^$src\//
)) {
$bad = "can not move directory '$src' into itself";
}
$bad = "can not move directory '$src' into itself";
}
@@
-142,14
+142,22
@@
while(scalar @srcArgs > 0) {
# Final pass: rename/move
my (@deletedfiles,@addedfiles,@changedfiles);
# Final pass: rename/move
my (@deletedfiles,@addedfiles,@changedfiles);
+$bad = "";
while(scalar @srcs > 0) {
$src = shift @srcs;
$dst = shift @dsts;
if ($opt_n || $opt_v) { print "Renaming $src to $dst\n"; }
if (!$opt_n) {
while(scalar @srcs > 0) {
$src = shift @srcs;
$dst = shift @dsts;
if ($opt_n || $opt_v) { print "Renaming $src to $dst\n"; }
if (!$opt_n) {
- rename($src,$dst)
- or die "rename failed: $!";
+ if (!rename($src,$dst)) {
+ $bad = "renaming '$src' failed: $!";
+ if ($opt_k) {
+ print "Warning: skipped: $bad\n";
+ $bad = "";
+ next;
+ }
+ last;
+ }
}
$safesrc = quotemeta($src);
}
$safesrc = quotemeta($src);
@@
-209,3
+217,8
@@
else {
close(H);
}
}
close(H);
}
}
+
+if ($bad ne "") {
+ print "Error: $bad\n";
+ exit(1);
+}