From: Christian Couder <christian.couder@gmail.com>
To: duperrav@minatec.inpg.fr
Cc: Junio C Hamano <gitster@pobox.com>,
Valentin Duperray <Valentin.Duperray@ensimag.imag.fr>,
git@vger.kernel.org, Franck Jonas <Franck.Jonas@ensimag.imag.fr>,
Lucien Kong <Lucien.Kong@ensimag.imag.fr>,
Thomas Nguy <Thomas.Nguy@ensimag.imag.fr>,
Huynh Khoi Nguyen Nguyen
<Huynh-Khoi-Nguyen.Nguyen@ensimag.imag.fr>,
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>, Peff <peff@peff.net>
Subject: Re: [PATCHv2] git bisect old/new
Date: Thu, 14 Jun 2012 11:56:02 +0200 [thread overview]
Message-ID: <CAP8UFD2LBKXuey2w_-0Zy9Thi1DWCgekjCL3RULmHWVK5DXCog@mail.gmail.com> (raw)
In-Reply-To: <20120613200606.Horde.QkenYnwdC4BP2NaOTf8gvnA@webmail.minatec.grenoble-inp.fr>
On Wed, Jun 13, 2012 at 8:06 PM, <duperrav@minatec.inpg.fr> wrote:
>
> Junio C Hamano <gitster@pobox.com> a écrit :
>
>
>>> Some commands are still not available for old/new:
>>>
>>> * git bisect start [<new> [<old>...]] is not possible: the
>>> commits will be treated as bad and good.
>>> * git rev-list --bisect does not treat the revs/bisect/new and
>>> revs/bisect/old-SHA1 files.
>>> * thus, git bisect run <cmd> is not available for new/old.
>>> * git bisect visualize seem to work partially: the tags are
>>> displayed correctly but the tree is not limited to the bisect
>>> section.
>>
>>
>> Would be easier to review if the subject is marked as RFC while
>> these todo items are still there.
>>
>> Also before going too far into the implementation, I think it is a
>> good idea to think how you are going to address the above issues. I
>> suspect the changes to bisect.c will have to be vastly different
>> depending on that plan.
>
>
> * git bisect start [<new> [<old>...]]:
>
> The idea would be to add a "--new" option to start in new/old mode.
I am ok with that.
> * git rev-list --bisect:
>
> I see two solutions for this:
>
> - read revisions from both refs/bisect/bad and refs/bisect/new
> (resp. refs/bisect/good and refs/bisect/old).
>
> - read revisions only from refs/bisect/bad and refs/bisect/good
> when the BISECT_TERMS doesn't exist or contains bad/good
> and
> read revisions only from refs/bisect/new and refs/bisect/old
> when the BISECT_TERMS exists and contains new/old.
>
> I prefer the latter because I don't really know how reading all files
> will affect the calls of "git rev-list" outside of a bisect session and
> the two types of files should not be present simultaneously anyway.
Why didn't you consider adding another option: "--bisect-terms-new" or
"--bisect-terms=new,old" or "--bisect-refs=new,old"?
By the way, I just looked at the doc for "--bisect-vars". This outputs
text ready to be eval'ed by the shell, and, among the variables it
outputs, there are "bisect_bad" and "bisect_good".
So maybe we should avoid using BISECT_BAD and BISECT_GOOD shell
variables in git-bisect.sh to avoid confusion.
>> While this is not wrong per-se, I am not sure if storing and reading
>> two lines from this file is really worth the trouble.
>>
>> Wouldn't it be easier to change the convention so that the presense
>> of BISECT_OLDNEW file signals that the program is working in the
>> old/new mode as opposed to the traditional good/bad mode, or perhaps
>> a single line "true" or "false" in the file tells us if we are in
>> OLDNEW mode, or something?
>
>
> If there is consensus around the fact that no other terms will be added
> after old/new, only checking if the file is present would be easier
> indeed.
Here is the end of the previous thread where old/new was originaly discussed:
http://thread.gmane.org/gmane.comp.version-control.git/182398/focus=183410
Peff said:
-------
Hmm. I think this is not quite as nice, but it is way simpler. It may be
worth trying for a bit to see how people like it. If they don't, the
cost of failure is that we have to maintain "old/new" forever, even
after we implement a yes/no reversible scheme. But maintaining the
old/new mapping from yes/no would not be any harder than the good/bad
mapping, which we would need to do anyway.
So it sounds like a reasonable first step.
-------
So in my opinion, there was a consensus that if old/new is not enough
it should not be a big deal to maintain anyway.
And I agree with this provided that we indeed implement old/new so
that it's not a big deal to maintain if we change our mind later.
(For example we might later want "yes/no", or "good/bad" with a
meaning reversed, or perhaps something else.)
So I'd rather have a file with a generic name like "BISECT_TERMS", but
it may contain just one line like for example "new/old".
We could just check that the content of the line is "new/old" and
die("Only 'new/old' is supported in $GIT_DIR/BISECT_TERMS") if it is
something else.
Thanks,
Christian.
next prev parent reply other threads:[~2012-06-14 9:56 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-12 2:03 [PATCH] git bisect old/new Valentin Duperray
2012-06-12 5:25 ` Christian Couder
2012-06-12 5:43 ` Junio C Hamano
2012-06-12 19:41 ` Phil Hord
2012-06-13 10:12 ` Christian Couder
2012-06-13 17:30 ` Junio C Hamano
2012-06-12 22:56 ` [PATCHv2] " Valentin Duperray
2012-06-12 23:54 ` Junio C Hamano
2012-06-13 18:06 ` duperrav
2012-06-14 9:56 ` Christian Couder [this message]
2012-06-14 17:34 ` Junio C Hamano
2012-06-15 20:20 ` Phil Hord
2012-06-15 21:06 ` Junio C Hamano
2012-06-13 10:05 ` Christian Couder
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAP8UFD2LBKXuey2w_-0Zy9Thi1DWCgekjCL3RULmHWVK5DXCog@mail.gmail.com \
--to=christian.couder@gmail.com \
--cc=Franck.Jonas@ensimag.imag.fr \
--cc=Huynh-Khoi-Nguyen.Nguyen@ensimag.imag.fr \
--cc=Lucien.Kong@ensimag.imag.fr \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=Thomas.Nguy@ensimag.imag.fr \
--cc=Valentin.Duperray@ensimag.imag.fr \
--cc=duperrav@minatec.inpg.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/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.
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 NNTP newsgroup(s).