* 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"
This commit is contained in:
Junio C Hamano 2011-12-19 16:05:34 -08:00
Родитель ab2fadefab 534376ca04
Коммит b052781fef
2 изменённых файлов: 10 добавлений и 4 удалений

Просмотреть файл

@ -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>.
@ -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

Просмотреть файл

@ -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"),
@ -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;
}
@ -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");