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");