From: Jakub Narebski <jnareb@gmail.com>
To: Stephan Beyer <s-beyer@gmx.net>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: [RFC/PATCH 2/4] Add git-sequencer prototype documentation
Date: Tue, 1 Jul 2008 20:04:10 +0200 [thread overview]
Message-ID: <200807012004.11563.jnareb@gmail.com> (raw)
In-Reply-To: <20080701160322.GC5301@leksak.fem-net>
Hi,
On Tue, 1 Jul 2008, Stephan Beyer wrote:
> On Tue, Jul 01, 2008 at 06:02:54AM -0700,
> Jakub Narebski <jnareb@gmail.com> wrote:
>> Stephan Beyer wrote:
>>>
>>> +git-sequencer will usually be called by another git porcelain, like
>>> +linkgit:git-am[1] or linkgit:git-rebase[1].
>>
>> I hope that it could be also used by git-cherry-pick and git-revert,
>> so it would be possible to pick more than one commit...
>
> Right, you've already mentioned it several times. ;-)
:blush: I'm sorry about that...
> But I haven't included it currently, because git-sequencer currently *uses*
> cherry-pick/revert to pick/revert commits, and I think this can lead to
> some confusion.
[...]
> So I'm only concentrating on rebase and am users until the builtin sequencer
> is in good shape.
Ah, I understand. It _is_ quite reasonable.
>>> +merge [options] <commit-ish1> <commit-ish2> ... <commit-ishN>::
>>> + Merge commits into HEAD.
>>
>> Nice.
>>
>> "HEAD" mean last picked up / created commit, isn't it?
>
> Right. This is used throughout the document...
> I thought it is clear and better to use than always describing around it
> by "last created commit".
O.K.
>>> +ref <ref>::
>>> + Set ref `<ref>` to the current HEAD, see also
>>> + linkgit:git-update-ref[1].
>>
>> So this functions like "git reset --soft <ref>", isn't it?
>
> No. Why do you think that? `ref` is set, and not HEAD.
> I think the description makes that clear.
Ah. I'm sorry. So it is like "git branch <ref>", isn't it?
What is important is: does it update reflog (correctly)?
>>> +squash [options] --from <mark>::
>>> + Squash all commits from the given mark into one commit.
>>> + There must not be any `merge` instructions between the
>>> + `mark` instruction and this `squash --from` instruction.
>>
>> Can you use <commit> instead of <mark> here?
>
> I wanted to make it clear that you can only specify a mark:
> a commit that has been somehow used in this sequencer session.
>
> Or have you meant that you think it is a bad restriction to only
> allow marks and no commits?
> I think this is a useful thing, because it's user-safe and I
> cannot imagine a case where you want to give a sha1 or a
> tag or branch or something.
>
> Here an example why it is useful for user-editing:
>
> (on commit f00babe)
> mark :1
> pick badcebab
> patch foo
> pick dadadada
> squash -m "Foo the cebab" --signoff --from :1
>
> This squashes all between the mark and the squash into one commit,
> on top of f00babe.
Ah, so squash --from <mark> picks up everything since "mark <mark>",
but does not include marked commit! Clever! In this case allowing
only <mark> is a good idea, IMVHO.
>>> + --include-merges;;
>>> + Sanity check does not fail if you have merges
>>> + between HEAD and <mark>.
>>
>> How do you squash merges? Creating merge with an union of parents,
>> excluding commits which got squashed?
>
> My squashes are realized using git reset --soft ... and then commit.
> I think this makes only sense when there are no merges in between,
> so I added the check, but if someone wants to squash merges, he should
> be able to do it.
>
> To somehow answer your question: I do not care what the result is,
> because I do not know what the result "should be".
O.K. I guess that is something left for later, especially that
forbidding merges in squashed commit is default (and you can always
do without merges, I think).
>>> +RETURN VALUES
>>> +-------------
>>> +* any other value on error, e.g.
>>> + running git-sequencer on a bare repository.
>>
>> Don't you enumerate those return values?
>
> In one of the very first spec versions, it was value 1, but:
[...]
> $ grep -m 1 -A 4 die_builtin usage.c
> static NORETURN void die_builtin(const char *err, va_list params)
> {
> report("fatal: ", err, params);
> exit(128);
> }
Perhaps stating that it returns 128 on fatal error, or rewording
that any other return value means some fatal error (does it?)
would be better. But that are details...
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2008-07-01 18:01 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-01 2:38 git sequencer prototype Stephan Beyer
2008-07-01 2:38 ` [RFC/PATCH 1/4] Add git-sequencer shell prototype Stephan Beyer
2008-07-01 2:38 ` [RFC/PATCH 2/4] Add git-sequencer prototype documentation Stephan Beyer
2008-07-01 2:38 ` [RFC/PATCH 3/4] Add git-sequencer test suite (t3350) Stephan Beyer
2008-07-01 2:38 ` [RFC/PATCH 4/4] Migrate git-am to use git-sequencer Stephan Beyer
2008-07-01 2:39 ` git-rebase-i migration to sequencer Stephan Beyer
2008-07-01 2:39 ` [PATCH 1/2] Make rebase--interactive use OPTIONS_SPEC Stephan Beyer
2008-07-01 2:39 ` [RFC/PATCH 2/2] Migrate git-rebase--i to use git-sequencer Stephan Beyer
2008-07-05 17:31 ` [RFC/PATCH 3/4] Add git-sequencer test suite (t3350) Stephan Beyer
2008-07-05 18:16 ` Junio C Hamano
2008-07-01 13:02 ` [RFC/PATCH 2/4] Add git-sequencer prototype documentation Jakub Narebski
2008-07-01 16:03 ` Stephan Beyer
2008-07-01 18:04 ` Jakub Narebski [this message]
2008-07-01 19:50 ` Stephan Beyer
2008-07-02 0:39 ` Jakub Narebski
2008-07-02 1:20 ` Junio C Hamano
2008-07-02 3:01 ` Stephan Beyer
2008-07-05 17:00 ` [PATCH v2 " Stephan Beyer
2008-07-08 10:37 ` Jakub Narebski
2008-07-08 11:49 ` Stephan Beyer
2008-07-09 5:20 ` Karl Hasselström
2008-07-03 1:45 ` [RFC/PATCH 1/4] Add git-sequencer shell prototype Junio C Hamano
2008-07-03 11:03 ` Johannes Schindelin
2008-07-03 22:51 ` Junio C Hamano
2008-07-03 21:09 ` Stephan Beyer
2008-07-03 22:11 ` Junio C Hamano
2008-07-03 22:34 ` Stephan Beyer
2008-07-03 23:33 ` Stephan Beyer
2008-07-03 23:53 ` Johannes Schindelin
2008-07-04 0:38 ` Stephan Beyer
2008-07-04 1:03 ` Johannes Schindelin
2008-07-04 1:53 ` Stephan Beyer
2008-07-04 15:19 ` [PATCH] Allow cherry-picking root commits Johannes Schindelin
2008-07-04 16:41 ` Stephan Beyer
2008-07-06 1:05 ` Junio C Hamano
2008-07-06 1:37 ` Johannes Schindelin
2008-07-06 11:32 ` t3503: Add test case for identical files Stephan Beyer
2008-07-06 11:35 ` [PATCH] Allow cherry-picking root commits Stephan Beyer
2008-07-06 12:48 ` Johannes Schindelin
2008-07-04 1:06 ` [RFC/PATCH 1/4] Add git-sequencer shell prototype Stephan Beyer
2008-07-04 1:11 ` Johannes Schindelin
2008-07-03 13:10 ` Jakub Narebski
2008-07-03 21:12 ` Stephan Beyer
2008-07-05 16:58 ` [PATCH v2 " Stephan Beyer
2008-07-01 8:51 ` git sequencer prototype Junio C Hamano
2008-07-01 14:53 ` Stephan Beyer
2008-07-04 21:00 ` Alex Riesen
2008-07-04 22:09 ` Junio C Hamano
2008-07-04 22:23 ` Stephan Beyer
2008-07-05 8:13 ` Alex Riesen
2008-07-05 10:12 ` Thomas Adam
2008-07-05 10:13 ` Johannes Schindelin
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=200807012004.11563.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=s-beyer@gmx.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.