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

[BUG] 'git mv a/fileA b/fileB' causes 'c/fileC' to be deleted

From
MCMichael Cassar <m.e.cassar@gmail.com>
Date
Oct 1, 2006, 14:21 UTC
Message-ID
<750170aa0610010721p66899ba5pcc7efa13be4cd10a@mail.gmail.com>
Hi,

I'm new to git, so this may be user error, but I am getting some strange behaviour using the 'git mv' command. In particular, attempting to move a file from one directory to another (performing a rename in the process) causes an unrelated third-party file to be deleted after commit.

I have flicked through the git man pages and googled for git mv related issues, but haven't come up with anything.

Here is a transcript. These results are reproducable using the same files, but I can't seem to reproduce with different files.

## Create initial respository

[mike@simba ~] git version git version 1.4.2.1

[mike@simba ~] mkdir repos; cd repos

[mike@simba ~/repos] git init-db defaulting to local storage area

[mike@simba ~/repos] cp -r ~/thesis_work/* .

[mike@simba ~/repos] ls -a . .. .git metathesis notes papers partA

[mike@simba ~/repos] git add metathesis notes papers partA

[mike@simba ~/repos] git commit -m 'initial import' Committing initial tree 77d618ebc7c8e655c1d2f0e223e1957b6b5ff247

## Files that we are going to deal with. Note that 'outline.txt' is an ## innocent third party.

[mike@simba ~/repos] sha1sum partA/outline.txt 891256d20531ebc288f1abb5e23f9979597889d3 partA/outline.txt

[mike@simba ~/repos] sha1sum papers/unsorted/Thesis.pdf 52446ade19a067253e8407bf092b52e5efa35247 papers/unsorted/Thesis.pdf

## Move 'Thesis.pdf' to a new name, and commit

[mike@simba ~/repos] git mv papers/unsorted/Thesis.pdf papers/all-papers/new-name.pdf

[mike@simba ~/repos] git commit -m 'moved a file'

## Have a look at what git just did. In particular, note that 'outline.txt' ## has magically appeared in the log

[mike@simba ~/repos] cg log -f | head commit aa544a0d58118eb01fa6768e438fa0f521d6095b tree 07c4971e3946b7c33742515e8915ec6e8abc4e40 parent 0d4292e44aa999707eddf31c4bbcadd711a170be author mike <mike@simba.home> Sun, 01 Oct 2006 23:39:06 +1000 committer mike <mike@simba.home> Sun, 01 Oct 2006 23:39:06 +1000

    * papers/all-papers/new-name.pdf, partA/outline.txt:
    moved a file
## What changes are in the commit?
[mike@simba ~/repos] git show aa544a0d58118eb01fa6768e438fa0f521d6095b
| head -19
commit aa544a0d58118eb01fa6768e438fa0f521d6095b
Author: mike <mike@simba.home>
Date:   Sun Oct 1 23:39:06 2006 +1000
    moved a file
diff --git a/papers/all-papers/new-name.pdf b/papers/all-papers/new-name.pdf
new file mode 100644
index 0000000..5441543
Binary files /dev/null and b/papers/all-papers/new-name.pdf differ
diff --git a/partA/outline.txt b/partA/outline.txt
deleted file mode 100644
index d3ac280..0000000
--- a/partA/outline.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-
-Thesis Part A
-
[rest of file outline.txt deleted]

Is this just me being an idiot, or could there be a bigger problem
here?

Please CC me in any replies.

Cheers,

Mike
Next: Junio C Hamano
Message 1 of 5 in “[BUG] 'git mv a/fileA b/fileB' causes 'c/fileC' to be deleted”
  1. Michael CassarOct 1, 2006
  2. Junio C HamanoOct 1, 2006
  3. Michael CassarOct 2, 2006
  4. Junio C HamanoOct 2, 2006
  5. Junio C HamanoOct 2, 2006

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.