git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael J Gruber <git@drmicha.warpmail.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCHv2 0/9] --left/right-only and --cherry-mark
Date: Thu, 10 Mar 2011 09:08:29 +0100	[thread overview]
Message-ID: <4D7886FD.60109@drmicha.warpmail.net> (raw)
In-Reply-To: <7vtyfc7ymk.fsf@alter.siamese.dyndns.org>

Junio C Hamano venit, vidit, dixit 09.03.2011 22:49:
> Michael J Gruber <git@drmicha.warpmail.net> writes:
> 
>> This is a replacement for mg/rev-list-one-side-only in pu.
>> The --left/right-only related commits (1-4/9) are unchanged.
> 
> I like the general idea of marking the equivalent ones instead of outright
> discarding the commits in the cherry_pick_list() function.
> 
> It might be a good idea to record the correspondence between equivalent
> commits in some way; the current topic does not need that information in
> order to produce its output, so that is something other people can build
> on top of this topic in the future.

Yes, I often want to look up the commit on pu which a patch resulted in.
But usually looking it up by commit subject works better than by
patch-id (because of occasional minor edits).

In general it might be nice to have maybe --patch-ids similar to
--parents, or a --patch=<commit> limitting option. (I don't think
outputting equivalent commits along with all commits is viable.)

> There is only one minor point that nagged me while reading this series.
> 
> Conceptually revs->cherry_mark ought to be a subset of revs->cherry_pick
> and the code shouldn't have to do something like this:
> 
> 	if (revs->cherry_pick || revs->cherry_mark)
>         	cherry_pick_list();
> 
> Instead, the code should arrange that revs->cherry_pick is always set
> when revs->cherry_mark is set before the calling application enters the
> loop to call get_revision().
> 
> But that would make the command line parsing more cumbersome (you would
> either waste one bit so that you can tell if you saw --cherry-pick on the
> command line, or keep the version of parser in this series as-is, and add
> postprocessing code to flip revs->cherry_pick on when revs->cherry_mark
> was given in prepare_revision_walk()), and I understand that is why you
> did it that way?

Yes, I think so :) Another reason is that even cherry_pick_list() needs
to know which object flag it should set. So we could

- leave the parser as is
- set cherry_pick when cherry_mark is set
- if (revs->cherry_pick) cherry_pick_list();
- leave cherry_pick_list() as is

Would that be better? I didn't do that because it changes the meaning of
cherry_pick (it can mean two things then). It would introduce the
assumption "pick is set when mark is" instead of "at most one is set"
which is as good or bad. (The current series does cherry_mark when both
are set by a different caller, and the above would do neither when only
cherry_mark is set.)

I think I also didn't do it because "marking" does not do any "picking",
so with the above "cherry_pick" would really be "cherry_process".

But I'm open to changing this, of course (maybe along with renaming
revs->cherry_pick).

Any thoughts on the actual marks ('+' vs. ' ' vs. '*')?

I also feel like we could use a space between the mark and the sha1
(like git cherry does) to ease copy and paste but that is an orthogonal
issue applying to all marks (<>-^+=).

Michael

  reply	other threads:[~2011-03-10  8:12 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-07 12:31 [PATCHv2 0/9] --left/right-only and --cherry-mark Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 1/9] revlist.c: introduce --left/right-only for unsymmetric picking Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 2/9] t6007: Make sure we test --cherry-pick Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 3/9] rev-list: documentation and test for --left/right-only Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 4/9] rev-list: --left/right-only are mutually exclusive Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 5/9] rev-list/log: factor out revision mark generation Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 6/9] revision.c: introduce --cherry-mark Michael J Gruber
2011-03-09 21:29   ` Junio C Hamano
2011-03-10  8:23     ` [PATCHv2+ " Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 7/9] rev-list: documentation and test for --cherry-mark Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 8/9] log --cherry: a synonym Michael J Gruber
2011-03-07 12:31 ` [PATCHv2 9/9] t6007: test rev-list --cherry Michael J Gruber
2011-03-09 21:49 ` [PATCHv2 0/9] --left/right-only and --cherry-mark Junio C Hamano
2011-03-10  8:08   ` Michael J Gruber [this message]
2011-03-10  9:56     ` Junio C Hamano
2011-03-10 10:48       ` Michael J Gruber
2011-03-10 14:44         ` [PATCHv3 00/10] " Michael J Gruber
2011-03-10 14:44           ` [PATCHv3 01/10] revlist.c: introduce --left/right-only for unsymmetric picking Michael J Gruber
2011-03-10 14:44           ` [PATCHv3 02/10] t6007: Make sure we test --cherry-pick Michael J Gruber
2011-03-10 14:44           ` [PATCHv3 03/10] rev-list: documentation and test for --left/right-only Michael J Gruber
2011-03-10 14:44           ` [PATCHv3 04/10] rev-list: --left/right-only are mutually exclusive Michael J Gruber
2011-03-10 14:44           ` [PATCHv3 05/10] rev-list/log: factor out revision mark generation Michael J Gruber
2011-03-10 14:44           ` [PATCHv3 06/10] revision.c: introduce --cherry-mark Michael J Gruber
2011-03-10 14:45           ` [PATCHv3 07/10] rev-list: documentation and test for --cherry-mark Michael J Gruber
2011-03-10 14:45           ` [PATCHv3 08/10] log --cherry: a synonym Michael J Gruber
2011-03-10 14:45           ` [PATCHv3 09/10] t6007: test rev-list --cherry Michael J Gruber
2011-03-10 14:45           ` [PATCHv3 10/10] git-log: put space after commit mark Michael J Gruber
2011-03-10 18:22         ` [PATCHv2 0/9] --left/right-only and --cherry-mark Junio C Hamano
2011-03-11  7:52           ` Michael J Gruber
2011-03-11  8:02             ` Junio C Hamano

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=4D7886FD.60109@drmicha.warpmail.net \
    --to=git@drmicha.warpmail.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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).