From: demerphq Date: Mon, 02 Nov 2009 16:33:25 GMT Subject: Re: BUG: git rebase -i -p silently looses commits Message-ID: <9b18b3110911020833y56be8fbdoaf10b6e6259f57c8@mail.gmail.com> In-Reply-To: <85647ef50911020818p61d0c975kd5655fa58993e07b@mail.gmail.com> 2009/11/2 Constantine Plotnikov : > I have encountered what looks like critical bugs in the git rebase -i > -p (it can be reproduced on mingw and cygwin, I have not tried other > platforms). > > Let's create a git repository with > > git init > # the next line is for mingw > git config core.autocrlf input > echo a >a.txt > echo b >b.txt > git add a.txt b.txt > git commit -m "init commit" > echo aa >a.txt > git add a.txt > git commit -m "aa commit" > echo bb >b.txt > git add b.txt > git commit -m "bb commit" > echo aaa >a.txt > git add a.txt > git commit -m "aaa commit" > > Now let's use the following rebase command: > > git rebase -i -p HEAD~3 > > When the editor will appear, just move the commit "bb commit" to the > end of the list. The rebase process will complete successfully, but > commit "aaa commit" will be missing from the history and working tree > will not be affected by that commit. > > Other bug is that if we move "bb commit" to the top of the list in the > editor, the rebase process will apply "bb commit", but instead of > applying "aa commit" and than "aaa commit", the rebase process fails > with a merge conflict. > > This can be reproduced with git 1.6.5.1 (msys) and 1.6.1.2 (cygwin). I > consider these to be a critical bugs that make "-p" option extremely > dangerous for interactive rebase. It might even make sense to disable > it for interactive rebase until the bug is fixed. Doesnt -p ONLY work for interactive rebase? -p, --preserve-merges Instead of ignoring merges, try to recreate them. This option only works in interactive mode. Yves -- perl -Mre=debug -e "/just|another|perl|hacker/"