X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-mv.perl;h=b6c0b4881845bf6a8d9681817fc540a2003b889e;hb=562051809589574576971c53c23aad93f8c395d9;hp=ac19876fecbd2758e2782ae3f3423a727a036bd3;hpb=f6bc189a457b2575587f26e27f1eabdd615b2d78;p=git.git diff --git a/git-mv.perl b/git-mv.perl index ac19876f..b6c0b488 100755 --- a/git-mv.perl +++ b/git-mv.perl @@ -19,15 +19,9 @@ EOT exit(1); } -# Sanity checks: -my $GIT_DIR = $ENV{'GIT_DIR'} || ".git"; - -unless ( -d $GIT_DIR && -d $GIT_DIR . "/objects" && - -d $GIT_DIR . "/objects/" && -d $GIT_DIR . "/refs") { - print "Error: git repository not found."; - exit(1); -} - +my $GIT_DIR = `git rev-parse --git-dir`; +exit 1 if $?; # rev-parse would have given "not a git dir" message. +chomp($GIT_DIR); our ($opt_n, $opt_f, $opt_h, $opt_k, $opt_v); getopts("hnfkv") || usage; @@ -108,7 +102,7 @@ while(scalar @srcArgs > 0) { } } - if (($bad eq "") && ($src eq $dstDir)) { + if (($bad eq "") && ($dst =~ /^$safesrc\//)) { $bad = "can not move directory '$src' into itself"; } @@ -151,6 +145,11 @@ while(scalar @srcs > 0) { if (!$opt_n) { if (!rename($src,$dst)) { $bad = "renaming '$src' failed: $!"; + if ($opt_k) { + print "Warning: skipped: $bad\n"; + $bad = ""; + next; + } last; } }