On Sun, Jun 18, 2006 at 09:40:06AM -0400, Jeff Garzik wrote: > Now that kernel 2.6.17 is out, I updated all my repositories to be based > against that kernel. And for each repository I updated, my merge was > rejected, due to an error similar to: > > >fatal: Untracked working tree file '.gitignore' would be overwritten by > >merge. > > I am only able to merge if I delete files in the working directory, so > that git stops complaining on merge. > > This behavior is new with git 1.4.0, which Fedora Extras just added. I > verified that merges work as expected in git 1.3.3, the last version > Fedora Extras shipped prior to 1.4.0. > > This behavior is a definite regression, that impacts workflow :( > > Here is how to reproduce: > > git clone -l $url/torvalds/linux-2.6.git tmp-2.6 At this point you have master checked out, and recorded properly in the index. > cd tmp-2.6 > cp .git/refs/tags/v2.6.12 .git/refs/heads/tmp > git checkout -f tmp Here, you throw that index away, ignore the contents of the working tree, and checkout tmp. > git pull . master > # watch OBVIOUS FAST-FORWARD MERGE complain about untracked > # working tree files At this point, you have a working tree containing files leftover from the checkout of master, but which are totally unknown to the 2.6.12 tree, and so are untracked. The fast-forward is trying hard not to overwrite things it shouldn't be messing with, and so complains. The fix is to drop the "-f" from git checkout, and things should work correctly. ("-f" should really not be a normal thing to use. For switching branches, "git checkout" should be sufficient, and should result ina working tree that doesn't contain nearly as many potential conflict sources. -- Ryan Anderson sometimes Pug Majere - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html