All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephan Beyer <s-beyer@gmx.net>
To: Jakub Narebski <jnareb@gmail.com>, Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: [RFC/PATCH 2/4] Add git-sequencer prototype documentation
Date: Wed, 2 Jul 2008 05:01:35 +0200	[thread overview]
Message-ID: <20080702030135.GF5301@leksak.fem-net> (raw)
In-Reply-To: <7v4p79hyk0.fsf@gitster.siamese.dyndns.org> <200807020239.41613.jnareb@gmail.com>

On Wed, Jul 02, 2008 at 02:39:40AM +0200, Jakub Narebski wrote:
> On Tue, 1 July 2008, Stephan Beyer wrote:
> > On Tue, Jul 01, 2008 at 08:04:10PM +0200, Jakub Narebski wrote:
[...]
> > No. It is "git-update-ref <ref> HEAD".
> 
> So what do you envision would this be used for?

I think if I had not started on top js/rebase-i-sequencer, I would have
not necessarily added "ref" (or "tag", as it was before).
But js/rebase-i-sequencer introduced a nice feature to
git-rebase-i:
 -t,--preserve-tags ... "update tags to the new commit object"

I think this is worth the feature ;-)

On Tue, Jul 01, 2008 at 06:20:15PM -0700, Junio C Hamano wrote:
> Jakub Narebski <jnareb@gmail.com> writes:
> 
> >> No. It is "git-update-ref <ref> HEAD".
> >
> > So what do you envision would this be used for?
> 
> A simple answer and a more elaborate one.
> 
>  * It is the final step of "git rebase" which detaches HEAD while it
>    operates these days.

Ha ;)
That's a quite obvious truth that I have not implemented.
Btw: sequencer does the detaching/attaching when using "--onto <base>"
and <base> is a branch.
IIRC there was a reason that I also kept the detaching/attaching of
git-rebase-i itself but I can't remember. (I think I have to look
over the rebase-i code more carefully later...)

>  * You can drive sequencer backend from a front-end that rewrite history
>    while rewriting tags, like filter-branch does.

Yes.

> >>> What is important is: does it update reflog (correctly)?
> 
> That is not very important question, as reflog updates would happen as
> long as you use update-ref automatically.
> 
> Much more important question you did not ask is how it would interact with
> "sequencer --abort".  Ideally it should rewind the ref update (and without
> relying on the user having reflog on that ref).

Yes, you asked the question in the RFC thread about the spec.

"Rewind the ref update" means:
 - delete new generated refs
 - update overwritten refs to their old commits
So if I keep a list containing <ref> [<oldcommit>], that behavior
is easily reached. But this is not suited for the shell prototype ;)


Btw, also the --skip case can be arguable:

	pick fa1afe1
	pick cedefe1	# conflict, will be "--skip"ped
	ref refs/tags/v1.6.2

Here the question can be, if the "ref" should be skipped, too.
But I think the just-don't-care-strategy is a good one, so
that fa1afe1' will be tagged.

> I however personally feel that this "ref" thing is being a bit too
> ambitious.

I agree that it is no must-have feature but a nice-to-have feature ;)
Especially for the --preserve-tags feature.


Jakub wrote:
> >>>>> +squash [options] --from <mark>::
> > [...]
> >>> 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.
> > 
> > Good, thanks :)
> 
> Although I guess having example would make it clear from the go...

Yes, I see that the EXAMPLES section is really important and the
squash --from is important therein.

Regards,
  Stephan

-- 
Stephan Beyer <s-beyer@gmx.net>, PGP 0x6EDDD207FCC5040F

  parent reply	other threads:[~2008-07-02  3:02 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
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 [this message]
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=20080702030135.GF5301@leksak.fem-net \
    --to=s-beyer@gmx.net \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jnareb@gmail.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 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.