From: Christian Couder <chriscool@tuxfamily.org>
To: Daniel Barkalow <barkalow@iabervon.org>
Cc: Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Stephan Beyer <s-beyer@gmx.net>,
Jakub Narebski <jnareb@gmail.com>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH 4/4] reset: add test cases for "--merge-dirty" option
Date: Tue, 15 Sep 2009 06:32:46 +0200 [thread overview]
Message-ID: <200909150632.46444.chriscool@tuxfamily.org> (raw)
In-Reply-To: <alpine.LNX.2.00.0909110120520.28290@iabervon.org>
On Friday 11 September 2009, Daniel Barkalow wrote:
> On Fri, 11 Sep 2009, Christian Couder wrote:
> > On Friday 11 September 2009, Daniel Barkalow wrote:
> > > On Thu, 10 Sep 2009, Christian Couder wrote:
> > >
> > > This shows that with the "--merge-dirty" option,
> > >
> > > changes that are both in the work tree and the index are kept
> > >
> > > in the work tree after the reset (but discarded in the index). As
> > > with the "--merge" option,
> > >
> > > changes that are in both the work tree and the index are discarded
> > >
> > > after the reset.
> > >
> > > I'm lost here.
> > >
> > > If you have:
> > >
> > > working index HEAD target
> > > version B B A A
> > >
> > > You get:
> > >
> > > working index HEAD target
> > > --m-d B A A A
> > > --merge A A A A
> > >
> > > ?
> >
> > Yes, files that are not different between HEAD and target are changed
> > like that. Thanks for explaining it better than I could!
>
> I worked on the rules for merging way back when, so I've looked at tables
> of cases like that. If there are more cases to cover, it might work
> better to have a table like:
>
> working index HEAD target working index HEAD
> B B A A --m-d B A A
> --merge A A A
> B B A C --m-d (disallowed)
> --merge C C C
>
> Are there other differences?
Yes, I found that I messed up the last test in patch 4/4. I forgot to
replace some --merge with --merge-dirty :-(
In fact while "reset --merge" fails when there are changes in files that are
changed between HEAD and target, "reset --merge-dirty" will not fail and
discard these changes. So it is not really safe in this case and I am
working on trying to make it safer in this case.
> > > > ---
> > > > t/t7110-reset-merge.sh | 54
> > > > +++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 49
> > > > insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/t/t7110-reset-merge.sh b/t/t7110-reset-merge.sh
> > > > index 45714ae..1e6d634 100755
> > > > --- a/t/t7110-reset-merge.sh
> > > > +++ b/t/t7110-reset-merge.sh
> > > > @@ -19,7 +19,7 @@ test_expect_success 'creating initial files' '
> > > > git commit -m "Initial commit"
> > > > '
> > > >
> > > > -test_expect_success 'ok with changes in file not changed by reset'
> > > > ' +test_expect_success '--merge: ok if changes in file not touched
> > > > by reset' '
> > >
> > > Should probably have the "--merge: " from the beginning, since you're
> > > adding the test in this series anyway. That would make the diff come
> > > out clearer.
> >
> > Yeah, but I am not sure that patches 3/4 and 4/4 will get merged in the
> > end. If they are not merged it will be better if there is no "--merge:
> > ".
>
> Maybe write those lines to mention "reset --merge" naturally? Like:
>
> 'ok with changes in file not changed by reset --merge'
>
> 'reset --merge discards changes added to index 1'
Ok I will do that.
Thanks,
Christian.
next prev parent reply other threads:[~2009-09-15 4:31 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-10 20:23 [PATCH 0/4] "git reset --merge" related improvements Christian Couder
2009-09-10 20:23 ` [PATCH 1/4] reset: add a few tests for "git reset --merge" Christian Couder
2009-09-10 20:59 ` Jakub Narebski
2009-09-11 5:22 ` Christian Couder
2009-09-13 22:01 ` Tony Finch
2009-09-10 20:23 ` [PATCH 2/4] reset: use "unpack_trees()" directly instead of "git read-tree" Christian Couder
2009-09-11 5:20 ` Junio C Hamano
2009-09-11 5:34 ` Christian Couder
2009-09-11 5:55 ` Junio C Hamano
2009-09-11 6:32 ` Daniel Barkalow
2009-09-10 20:23 ` [PATCH 3/4] reset: add option "--merge-dirty" to "git reset" Christian Couder
2009-09-10 23:24 ` Linus Torvalds
2009-09-11 5:29 ` Christian Couder
2009-09-11 16:02 ` Linus Torvalds
2009-09-11 5:34 ` Junio C Hamano
2009-09-10 20:23 ` [PATCH 4/4] reset: add test cases for "--merge-dirty" option Christian Couder
2009-09-10 22:14 ` Daniel Barkalow
2009-09-11 5:05 ` Christian Couder
2009-09-11 5:36 ` Daniel Barkalow
2009-09-15 4:32 ` Christian Couder [this message]
2009-09-13 22:15 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200909150632.46444.chriscool@tuxfamily.org \
--to=chriscool@tuxfamily.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jnareb@gmail.com \
--cc=s-beyer@gmx.net \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).