Re: [PATCH 4/4] reset: add test cases for "--merge-dirty" option
- From
Christian Couder <chriscool@tuxfamily.org>
- Date
- Sep 11, 2009, 05:05 UTC
- Message-ID
- <200909110705.35083.chriscool@tuxfamily.org>
- In-Reply-To
- <alpine.LNX.2.00.0909101757530.28290@iabervon.org>
On Friday 11 September 2009, Daniel Barkalow wrote:
Show 27 quoted lines
> 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!
And also when files are different between HEAD and target (and when the index is the same as the working tree but different than HEAD), the result from -m-d and --merge are different:
If you have:
working index HEAD target version B B A C
You get:
working index HEAD target --m-d B B A C : --m-d fails (so no change) --merge C C C C : success but changes B discarded
In t/t7110-reset-merge.sh these differences are shown by test cases 3, 4, 5 and 6:
--merge: discard changes added to index 1 --merge: discard changes added to index 2 --merge-dirty: not ok with touched changes in index --merge-dirty: keep untouched changes
Show 20 quoted lines
> > --- > > 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: ".
If they get merged, the option name '--merge-dirty" will probably be changed to something else like "--merge-safe" so I will have to change some patches anyway.
Thanks, Christian.