Skip to content

Commit

Permalink
Merge branch 'jk/maint-mv'
Browse files Browse the repository at this point in the history
* jk/maint-mv:
  mv: be quiet about overwriting
  mv: improve overwrite warning
  mv: make non-directory destination error more clear
  mv: honor --verbose flag
  docs: mention "-k" for both forms of "git mv"
  • Loading branch information
Junio C Hamano committed Dec 20, 2011
2 parents ab2fade + 534376c commit b052781
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
8 changes: 6 additions & 2 deletions Documentation/git-mv.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ DESCRIPTION
-----------
This script is used to move or rename a file, directory or symlink.

git mv [-f] [-n] <source> <destination>
git mv [-f] [-n] [-k] <source> ... <destination directory>
git mv [-v] [-f] [-n] [-k] <source> <destination>
git mv [-v] [-f] [-n] [-k] <source> ... <destination directory>

In the first form, it renames <source>, which must exist and be either
a file, symlink or directory, to <destination>.
Expand All @@ -40,6 +40,10 @@ OPTIONS
--dry-run::
Do nothing; only show what would happen

-v::
--verbose::
Report the names of files as they are moved.

GIT
---
Part of the linkgit:git[1] suite
6 changes: 4 additions & 2 deletions builtin/mv.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
int i, newfd;
int verbose = 0, show_only = 0, force = 0, ignore_errors = 0;
struct option builtin_mv_options[] = {
OPT__VERBOSE(&verbose, "be verbose"),
OPT__DRY_RUN(&show_only, "dry run"),
OPT__FORCE(&force, "force move/rename even if target exists"),
OPT_BOOLEAN('k', NULL, &ignore_errors, "skip move/rename errors"),
Expand Down Expand Up @@ -93,7 +94,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
destination = copy_pathspec(dest_path[0], argv, argc, 1);
} else {
if (argc != 1)
usage_with_options(builtin_mv_usage, builtin_mv_options);
die("destination '%s' is not a directory", dest_path[0]);
destination = dest_path;
}

Expand Down Expand Up @@ -176,7 +177,8 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
* check both source and destination
*/
if (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode)) {
warning(_("%s; will overwrite!"), bad);
if (verbose)
warning(_("overwriting '%s'"), dst);
bad = NULL;
} else
bad = _("Cannot overwrite");
Expand Down

0 comments on commit b052781

Please sign in to comment.