From: Junio C Hamano <gitster@pobox.com> Date: Tue, 20 Dec 2011 00:05:34 +0000 (-0800) Subject: Merge branch 'jk/maint-mv' X-Git-Tag: v1.7.9-rc0~50 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/b052781fef2f978ba9cc55d6de942bb779bd54ac?hp=-c Merge branch 'jk/maint-mv' * 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" --- b052781fef2f978ba9cc55d6de942bb779bd54ac diff --combined builtin/mv.c index 5efe6c5760,10154bb316..2a144b011c --- a/builtin/mv.c +++ b/builtin/mv.c @@@ -29,11 -29,7 +29,11 @@@ static const char **copy_pathspec(cons to_copy--; if (to_copy != length || base_name) { char *it = xmemdupz(result[i], to_copy); - result[i] = base_name ? strdup(basename(it)) : it; + if (base_name) { + result[i] = xstrdup(basename(it)); + free(it); + } else + result[i] = it; } } return get_pathspec(prefix, result); @@@ -59,6 -55,7 +59,7 @@@ int cmd_mv(int argc, const char **argv 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 -90,7 +94,7 @@@ 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 -173,8 +177,8 @@@ * 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");