Merge branch 'jk/maint-mv'
authorJunio C Hamano <gitster@pobox.com>
Tue, 20 Dec 2011 00:05:34 +0000 (16:05 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 20 Dec 2011 00:05:34 +0000 (16:05 -0800)
* 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"

1  2 
builtin/mv.c
diff --combined builtin/mv.c
index 5efe6c5760c43d0059a940ab9d4610b97092c8bd,10154bb3160f3f7c4e424ee817cf2de99d55f18e..2a144b011caa8ecb70f55976bdec60cae89fad9e
@@@ -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;
        }
  
                                 * 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");