Re: [PATCH] Rename ".dotest/" to ".git/rebase" and ".dotest-merge" to "rebase-merge"
- From
Stephan Beyer <s-beyer@gmx.net>
- Date
- Jul 23, 2008, 01:13 UTC
- Message-ID
- <20080723011341.GE5904@leksak.fem-net>
- In-Reply-To
- <7vbq0pifwq.fsf@gitster.siamese.dyndns.org>
Hi,
Junio C Hamano wrote:
Show 31 quoted lines
> Stephan Beyer <s-beyer@gmx.net> writes: > > Junio C Hamano wrote: > >> Olivier Marin <dkr+ml.git@free.fr> writes: > >> > @@ -203,9 +204,10 @@ then > >> > > >> > case "$abort" in > >> > t) > >> > - rm -fr "$dotest" && > >> > + git rerere clear && > >> > git read-tree -m -u ORIG_HEAD && > > [...] > >> diff --git a/git-am.sh b/git-am.sh > >> index a44bd7a..5cbf8f4 100755 > >> --- a/git-am.sh > >> +++ b/git-am.sh > >> @@ -203,9 +203,9 @@ then > >> > >> case "$abort" in > >> t) > >> - rm -fr "$dotest" && > >> - git read-tree -m -u ORIG_HEAD && > >> - git reset ORIG_HEAD && : > >> + git rerere clear > >> + git read-tree --reset -u HEAD ORIG_HEAD > > > > Perhaps I am confused, but ... > > Why is there "HEAD" and "ORIG_HEAD" and not only "ORIG_HEAD"? > > Just being a bit defensive -- in this case I think it might be Ok to say > "read-tree --reset -u ORIG_HEAD", but I haven't checked in a conflicted > case.
Well, the test suite fails: * FAIL 4: am --abort goes back after failed am
git-am --abort &&
git rev-parse HEAD >actual &&
git rev-parse initial >expect &&
test_cmp expect actual &&
here> test_cmp file-2-expect file-2 &&
... git diff-index --exit-code --cached HEAD &&
test ! -f .git/rr-cache/MERGE_RR* FAIL 7: am --abort goes back after failed am -3
git-am --abort &&
git rev-parse HEAD >actual &&
git rev-parse initial >expect &&
test_cmp expect actual &&
and here> test_cmp file-2-expect file-2 &&
git diff-index --exit-code --cached HEAD &&
test ! -f .git/rr-cache/MERGE_RRSo no reason to be defensive ;)
> If some path was added between ORIG_HEAD (that is where we started from) > and HEAD (that is where we are and we decide we do not want it), and that > path is conflicted in the index, a single tree form "read-tree --reset -u > HEAD" would leave it behind in the working tree, wouldn't it?
Seems so.
The reason of my question was that I *blindly* incorporated the change into sequencer to make it able to work on a dirty working tree and thus to be able to migrate am onto it without losing the ability to apply patches on a dirty working tree.... All am tests applied afterwards, but the sequencer and the rebase-i test suite failed in a place where I didn't expect it. I *then* had a deeper look at the read-tree line and I was wondering what the "HEAD" should achieve. I removed it and all tests passed. (I didn't have t4151 in my branch at that point.)
Now, because t4151 does not pass, I am wondering what's the best thing I could do...
Regards, Stephan
-- Stephan Beyer <s-beyer@gmx.net>, PGP 0x6EDDD207FCC5040F