Subject: Re: [GSoC 2011] Git Sequencer

From: Stephan Beyer <[email-masked]>
Date: Sun, 03 Apr 2011 21:07:01 +0200

Hi Ram,

first, some notes on my git-sequencer 2008 branches that can be found at
http://repo.or.cz/w/git/sbeyer.git ... (Not sure if I remember
everything correctly)

I've settled to develop within the "seq-builtin-dev" branch and I
sometimes merged Junio's "master" into that branch to catch up.
The "seq-builtin-dev" branch is the important one.

Using git rebase -i (using git-sequencer) I sometimes remanaged the
branch to "seq-builtin-rfc" that should represent a snapshot of a
potential patch queue. My last rebase processes of the seq-builtin-rfc
branch were pretty unmotivated and hence messy.

I have not touched the repo very often after GSOC'08 and I stopped
touching it (as I stopped following recent Git development) "20 months
ago" apparently. Quite many things may have changed since then.

The file A_SEQUENCER_TODO_FILE (added 2009-08-03) in the repo describes
the missing and buggy pieces to fix so that _I_ (only me) would have
been 100 per cent satisfied with that git-sequencer.
http://repo.or.cz/w/git/sbeyer.git/blob/9e4b4d92f681a47e3d7ad2152d2391b2ab125a0c:/A_SEQUENCER_TODO_FILE
[Some notes are also "strategy notes" to get things accepted, like the
changes on "rebase -i -p" which are "not loved by everyone". ;-)]

On 2011-04-03, 22:50 +0530, Ramkumar Ramachandra wrote: 
> * Is this a good change? Are there any forseeable issues?

I want to mention an issue that I have not foreseen before: merges.
(You need merges, for example, when doing rebase -i -p ... -p as in
--preserve-merges.)

When I began, there was code in the "next" branch that added the TODO
instructions "mark", "reset" and "merge" to do merges properly and I
based my work on it. The original pieces by Jörg Sommer can still be
found here:
http://repo.or.cz/w/git/sbeyer.git/shortlog/6fabd85e8a777c26f3ae8ce11cb7f4265502ea7f

However, there have been strong opinions that the "mark"/"reset"/"merge"
instructions are ugly and unpleasant to users and not even necessary (at
least for rebase--interactive... and for sequencer, maybe, maybe not). 
Hence, the code in "next" has been rejected later.

During GSOC 2008 I regrettably underestimated the importance to
communicate with the Git folks about these things. That's one of the
main reasons the sequencer pieces did not get into master. And after
GSOC'08 I had too little time for this... :-/

Well, the merging thing is the only *real* issue I remember.

Good luck and regards,
  Stephan