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

[PATCHv2 4/5] mv: improve overwrite warning

From
Jeff King <peff@peff.net>
Date
Dec 12, 2011, 21:54 UTC
Message-ID
<20111212215417.GA18310@sigill.intra.peff.net>
In-Reply-To
<20111212215238.GD9754@sigill.intra.peff.net>

When we try to "git mv" over an existing file, the error message is fairly informative:

  $ git mv one two
  fatal: destination exists, source=one, destination=two
When the user forces the overwrite, we give a warning:
  $ git mv -f one two
  warning: destination exists; will overwrite!

This is less informative, but still sufficient in the simple rename case, as there is only one rename happening.

But when moving files from one directory to another, it becomes useless:

  $ mkdir three
  $ touch one two three/one
  $ git add .
  $ git mv one two three
  fatal: destination exists, source=one, destination=three/one
  $ git mv -f one two three
  warning: destination exists; will overwrite!

The first message is helpful, but the second one gives us no clue about what was overwritten. Let's mention the name of the destination file:

  $ git mv -f one two three
  warning: overwriting 'three/one'
Signed-off-by: Jeff King <peff@peff.net>
---
 builtin/mv.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/builtin/mv.c b/builtin/mv.c
index ae6c30c..8dd5a45 100644
--- a/builtin/mv.c
+++ b/builtin/mv.c
@@ -177,7 +177,7 @@ 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);
+					warning(_("overwriting '%s'"), dst);
 					bad = NULL;
 				} else
 					bad = _("Cannot overwrite");
-- 
1.7.8.13.g74677
Previous: Jeff KingNext: Jeff King
Message 13 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.