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

Problem with merge when renaming

From
DEDavid Euresti <evelio@gmail.com>
Date
Sep 18, 2007, 20:34 UTC
Message-ID
<95b3d0af0709181334y1e21507ey485860e4d45aa26f@mail.gmail.com>
Hi,

I think I found a problem when you move a file into a directory of the same name. Here's what I did.

In a repository I created a directory with a file in it. Commit it. Then I move the file into a tmp name, make a directory with that name, and move it into the directory. git-mv dir/foo dir/foo.bin mkdir dir/foo git-mv dir/foo.bin dir/foo/foo.bin

Then in another branch I make a completely unrelated change. I create a file in another directory.

If I try to merge in the changes from the other branch or if the other branch tries to merge in these changes I get this error:

dir/foo/foo.bin: unmerged (257cc5642cb1a054f08cc83f2d943e56fd3ebe99) fatal: git-write-tree: error building trees Merge with strategy recursive failed.

This is the script I've been using #!/bin/bash #

# Make sure it's all clean rm -rf git-repo

mkdir git-repo pushd git-repo git-init mkdir dir git-add dir pushd dir echo foo > foo git-add foo popd git-commit -a -m "one" popd

# Developer A moves file into dir of same name pushd git-repo git-checkout -b branch-a git-mv dir/foo dir/foo.bin mkdir dir/foo git-mv dir/foo.bin dir/foo/foo.bin git-commit -a -m "File renamed" git-checkout master popd

# Developer B makes completely unrelated changes. pushd git-repo git-checkout -b branch-b echo baz > foo.txt echo bar > bar.txt git-add bar.txt git-add foo.txt git-commit -a -m "unrelated changes" git-checkout master popd

# Developer A wants to merge changes from B pushd git-repo #git-merge branch-a echo #git-merge branch-b #popd

Next: Alex Riesen
Message 1 of 7 in “Problem with merge when renaming”
  1. David EurestiSep 18, 2007
  2. Extend t6020 with another test for d/f interactionsAlex Riesen, Sep 18, 2007
  3. Junio C HamanoSep 18, 2007
  4. David EurestiSep 18, 2007
  5. Alex RiesenSep 18, 2007
  6. Junio C HamanoSep 18, 2007
  7. Alex RiesenSep 19, 2007

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.