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

Re: git merge error question: The following untracked working tree files would be overwritten by merge

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 25, 2013, 18:07 UTC
Message-ID
<7vehh95e7u.fsf@alter.siamese.dyndns.org>
In-Reply-To
<5102607E.2070106@cafu.de>
Carsten Fuchs <carsten.fuchs@cafu.de> writes:
Show 34 quoted lines
> Hi all,
>
> in my repo, I'm doing this:
>
>> $ git status
>> # On branch master
>> # Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.
>> #
>> # Untracked files:
>> #   (use "git add <file>..." to include in what will be committed)
>> #
>> #       obsolete/
>> nothing added to commit but untracked files present (use "git add" to track)
>>
>> $ git merge origin/master --ff-only
>> Updating f419d57..2da6052
>> error: The following untracked working tree files would be overwritten by merge:
>>         obsolete/e107/Readme.txt
>>         obsolete/e107/article.php
>>         obsolete/e107/backend.php
>>         [...]
> ...
> Compare with what Subversion did in an analogous case: When I ran "svn
> update" and the update brought new files for which there already was
> an untracked copy in the working directory, Subversion:
>     - started to consider the file as tracked,
>     - but left the file in the working-copy alone.
>
> As a result, a subsequent "svn status" might
>     a) no longer show the file at all, if the foreign copy in the
> working directory happened to be the same as the one brought by the
> "svn update", or
>     b) flag the file as modified, if different from the one that "svn
> update" would have created in its place.

Interesting. So before running "status", the merge is recorded (in this particular case you are doing ff-only so there is nothing new to record, but if the rest of the tree merges cleanly, the new tree that contains "obsolete" from the other branch you just merged will be the contents you record in the merge commit), and working tree is immediately dirty? It makes sense, even though I haven't tried to think things through to see if there are tricky corner cases.

> So my real question is, why does Git not do something analogous?

The answer to that question is "because nobody thought that doing so would help users very much and bothered to implement it"; it is not "people thought about doing so and found reasons why that would not help users".

Previous: Carsten FuchsNext: Carsten Fuchs
Message 2 of 3 in “git merge error question: The following untracked working tree files would be overwritten by merge”
  1. Carsten FuchsJan 25, 2013
  2. Junio C HamanoJan 25, 2013
  3. Carsten FuchsJan 26, 2013

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.