git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 5/5] mv: be quiet about overwriting

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 12, 2011, 19:59 UTC
Message-ID
<7vk46136iv.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20111212075407.GE17532@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 21 quoted lines
> When a user asks us to force a mv and overwrite the
> destination, we print a warning. However, since a typical
> use would be:
>
>   $ git mv one two
>   fatal: destination exists, source=one, destination=two
>   $ git mv -f one two
>   warning: destination exists (will overwrite), source=one, destination=two
>
> this warning is just noise. We already know we're
> overwriting; that's why we gave -f!
>
> This patch silences the warning unless "--verbose" is given.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> You could perhaps argue that it is useful in the case of moving multiple
> files into a directory (since it tells you _which_ files were
> overwritten). We could turn the warning on in that case, but I'm
> inclined to leave it. If the user cares about this information, they can
> use "-v" along with "-f".

Makes sense, but I also think even under verbose mode we should avoid the future tense. I.e. something like this:

    $ git mv -v -f one two
    warning: overwriting two
    $ git mv -v -f one two three
    warning: overwriting three/one
Show 19 quoted lines
>  builtin/mv.c |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/builtin/mv.c b/builtin/mv.c
> index c9ecb03..b6e7e4f 100644
> --- a/builtin/mv.c
> +++ b/builtin/mv.c
> @@ -177,8 +177,9 @@ 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), source=%s, destination=%s"),
> -						bad, src, dst);
> +					if (verbose)
> +						warning(_("%s (will overwrite), source=%s, destination=%s"),
> +							bad, src, dst);
>  					bad = NULL;
>  				} else
>  					bad = _("Cannot overwrite");
Previous: Jeff King
Message 16 of 16 in “git 1.7.7.3: BUG - please make git mv -f quiet”
  1. Jari AaltoDec 11, 2011
  2. 0/5 mixed bag of minor "git mv" fixesJeff King, Dec 12, 2011
  3. 1/5 docs: mention "-k" for both forms of "git mv"Jeff King, Dec 12, 2011
  4. Junio C HamanoDec 12, 2011
  5. 2/5 mv: honor --verbose flagJeff King, Dec 12, 2011
  6. Junio C HamanoDec 12, 2011
  7. Jeff KingDec 12, 2011
  8. 3/5 mv: make non-directory destination error more clearJeff King, Dec 12, 2011
  9. Junio C HamanoDec 12, 2011
  10. 4/5 mv: improve overwrite warningJeff King, Dec 12, 2011
  11. Junio C HamanoDec 12, 2011
  12. Jeff KingDec 12, 2011
  13. 4/5 mv: improve overwrite warningJeff King, Dec 12, 2011
  14. 5/5 mv: be quiet about overwritingJeff King, Dec 12, 2011
  15. 5/5 mv: be quiet about overwritingJeff King, Dec 12, 2011
  16. Junio C HamanoDec 12, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.