提交 3ae64dff 编写于 作者: J Josef Weidendorfer 提交者: Junio C Hamano

git-mv: shrink usage, no usage on error

Small fixes to be consistent with other git scripts:
- usage message is only about options and arguments
- on error, exit(1) without the usage message

Additionally, "beautifies" output with -n a little bit
Signed-off-by: NJosef Weidendorfer <Josef.Weidendorfer@gmx.de>
Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 22752e4c
...@@ -13,22 +13,8 @@ ...@@ -13,22 +13,8 @@
sub usage() { sub usage() {
print <<EOT; print <<EOT;
$0 [-f] [-n] <source> <dest> $0 [-f] [-n] <source> <destination>
$0 [-f] [-k] [-n] <source> ... <dest directory> $0 [-f] [-n] [-k] <source> ... <destination directory>
In the first form, source must exist and be either a file,
symlink or directory, dest must not exist. It renames source to dest.
In the second form, the last argument has to be an existing
directory; the given sources will be moved into this directory.
Updates the git cache to reflect the change.
Use "git commit" to make the change permanently.
Options:
-f Force renaming/moving, even if target exists
-k Continue on error by skipping
not-existing or not revision-controlled source
-n Do nothing; show what would happen
EOT EOT
exit(1); exit(1);
} }
...@@ -38,8 +24,8 @@ () ...@@ -38,8 +24,8 @@ ()
unless ( -d $GIT_DIR && -d $GIT_DIR . "/objects" && unless ( -d $GIT_DIR && -d $GIT_DIR . "/objects" &&
-d $GIT_DIR . "/objects/" && -d $GIT_DIR . "/refs") { -d $GIT_DIR . "/objects/" && -d $GIT_DIR . "/refs") {
print "Git repository not found."; print "Error: git repository not found.";
usage(); exit(1);
} }
...@@ -70,7 +56,7 @@ () ...@@ -70,7 +56,7 @@ ()
print "Error: moving to directory '" print "Error: moving to directory '"
. $ARGV[$argCount-1] . $ARGV[$argCount-1]
. "' not possible; not exisiting\n"; . "' not possible; not exisiting\n";
usage; exit(1);
} }
@srcArgs = ($ARGV[0]); @srcArgs = ($ARGV[0]);
@dstArgs = ($ARGV[1]); @dstArgs = ($ARGV[1]);
...@@ -148,7 +134,7 @@ () ...@@ -148,7 +134,7 @@ ()
next; next;
} }
print "Error: $bad\n"; print "Error: $bad\n";
usage(); exit(1);
} }
push @srcs, $src; push @srcs, $src;
push @dsts, $dst; push @dsts, $dst;
...@@ -187,33 +173,39 @@ () ...@@ -187,33 +173,39 @@ ()
} }
if ($opt_n) { if ($opt_n) {
if (@changedfiles) {
print "Changed : ". join(", ", @changedfiles) ."\n"; print "Changed : ". join(", ", @changedfiles) ."\n";
}
if (@addedfiles) {
print "Adding : ". join(", ", @addedfiles) ."\n"; print "Adding : ". join(", ", @addedfiles) ."\n";
}
if (@deletedfiles) {
print "Deleting : ". join(", ", @deletedfiles) ."\n"; print "Deleting : ". join(", ", @deletedfiles) ."\n";
exit(1); }
} }
else {
if (@changedfiles) { if (@changedfiles) {
open(H, "| git-update-index -z --stdin") open(H, "| git-update-index -z --stdin")
or die "git-update-index failed to update changed files with code $!\n"; or die "git-update-index failed to update changed files with code $!\n";
foreach my $fileName (@changedfiles) { foreach my $fileName (@changedfiles) {
print H "$fileName\0"; print H "$fileName\0";
} }
close(H); close(H);
} }
if (@addedfiles) { if (@addedfiles) {
open(H, "| git-update-index --add -z --stdin") open(H, "| git-update-index --add -z --stdin")
or die "git-update-index failed to add new names with code $!\n"; or die "git-update-index failed to add new names with code $!\n";
foreach my $fileName (@addedfiles) { foreach my $fileName (@addedfiles) {
print H "$fileName\0"; print H "$fileName\0";
} }
close(H); close(H);
} }
if (@deletedfiles) { if (@deletedfiles) {
open(H, "| git-update-index --remove -z --stdin") open(H, "| git-update-index --remove -z --stdin")
or die "git-update-index failed to remove old names with code $!\n"; or die "git-update-index failed to remove old names with code $!\n";
foreach my $fileName (@deletedfiles) { foreach my $fileName (@deletedfiles) {
print H "$fileName\0"; print H "$fileName\0";
} }
close(H); close(H);
}
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册