git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Daniel Barkalow <barkalow@iabervon.org>
To: Christian Couder <chriscool@tuxfamily.org>
Cc: Ramkumar Ramachandra <artagnon@gmail.com>,
	Git List <git@vger.kernel.org>,
	Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [RFC PATCH 00/11] Sequencer Foundations
Date: Mon, 11 Apr 2011 01:30:20 -0400 (EDT)	[thread overview]
Message-ID: <alpine.LNX.2.00.1104110031530.14365@iabervon.org> (raw)
In-Reply-To: <201104110518.04413.chriscool@tuxfamily.org>

On Mon, 11 Apr 2011, Christian Couder wrote:

> > 3. From the format of the TODO and DONE files, one more thing should
> > be clear- I'm trying to stick to a slight variation of the 'rebase -i'
> > format.  This part will go into the sequencer.  Then I'll use a
> > cherry-pick specific file to keep the command-line options.  Yes, I'm
> > trying to work on Daniel's idea [3] from the very start.  Is this a
> > good idea?
> 
> I think that the TODO and DONE file format will need at one point to include 
> options and it is simpler if this change is done early. Using a cherry-pick 
> specific file to keep the options is not very generic for a sequencer that could 
> be used for many things.

My idea is that cherry-pick (or merge, or whatever) would have its own 
state to store what it was trying to do when it got a conflict. This is to 
enable the cherry-pick (etc) to complete without needing to know anything 
about what called it. The sequencer's information would keep track of 
what was left to do, what was already complete, and how to abort the whole 
sequence.

It would be nice to get the following commands to work:

$ git cherry-pick <sha1>
Automatic cherry-pick failed.  After resolving the conflicts,
mark the corrected paths with 'git add <paths>' or 'git rm <paths>' and 
run 'git continue'
$ (resolve conflicts)
$ git continue
Finished one cherry-pick.
[master sha1b] Subject
 2 files changes, 2 insertions(+)

And, of course, if this happened as a step in a rebase, the rebase would 
continue after the cherry-pick finished. But it's annoying that, in order 
to finish a conflicted "git cherry-pick <branch>", you currently need to 
go back and find the instruction that says to commit it yourself, with the 
option "-c <sha1>" to retain authorship and message. And if you want to 
abort it, you need to remember "git reset --hard HEAD" (and maybe you also 
want "git rerere clear"). That's what cherry-pick should be keeping its 
own state for. This is also parallel to how "merge" works, with its 
information kept in private state files, including some things like the 
list of files that had conflicts which isn't trivial to reproduce after 
the user has resolved them.

	-Daniel
*This .sig left intentionally blank*

  parent reply	other threads:[~2011-04-11  5:30 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-10 15:11 [RFC PATCH 00/11] Sequencer Foundations Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 01/11] revert: Avoid calling die; return error instead Ramkumar Ramachandra
2011-04-10 19:14   ` Jonathan Nieder
2011-05-08 12:04     ` Ramkumar Ramachandra
2011-04-11 20:26   ` Junio C Hamano
2011-04-10 15:11 ` [PATCH 02/11] revert: Lose global variables "commit" and "me" Ramkumar Ramachandra
2011-04-11  3:24   ` Christian Couder
2011-04-11  8:57     ` Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 03/11] revert: Introduce a struct to parse command-line options into Ramkumar Ramachandra
2011-04-10 19:21   ` Jonathan Nieder
2011-05-08 12:18     ` Ramkumar Ramachandra
2011-04-11 21:41   ` Junio C Hamano
2011-05-08 12:09     ` Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 04/11] revert: Separate cmdline argument handling from the functional code Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 05/11] revert: Catch incompatible command-line options early Ramkumar Ramachandra
2011-04-11 21:44   ` Junio C Hamano
2011-05-08 11:47     ` Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 06/11] revert: Implement parsing --continue, --abort and --skip Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 07/11] revert: Handle conflict resolutions more elegantly Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 08/11] usage: Introduce error_errno correspoding to die_errno Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 09/11] revert: Write head, todo, done files Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 10/11] revert: Give noop a default value while argument parsing Ramkumar Ramachandra
2011-04-10 15:11 ` [PATCH 11/11] revert: Implement --abort processing Ramkumar Ramachandra
2011-04-10 19:33 ` [RFC PATCH 00/11] Sequencer Foundations Daniel Barkalow
2011-04-11  8:55   ` Ramkumar Ramachandra
2011-04-10 19:47 ` Jonathan Nieder
2011-04-11  1:16   ` Daniel Barkalow
2011-04-11  6:42     ` Jonathan Nieder
2011-04-11  9:07   ` Ramkumar Ramachandra
2011-04-11  3:18 ` Christian Couder
2011-04-11  4:49   ` Ramkumar Ramachandra
2011-04-11  6:20     ` Christian Couder
2011-04-11 10:48       ` Ramkumar Ramachandra
2011-04-11  5:30   ` Daniel Barkalow [this message]
2011-04-11  5:38     ` Jonathan Nieder
2011-04-11  6:34       ` Daniel Barkalow

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LNX.2.00.1104110031530.14365@iabervon.org \
    --to=barkalow@iabervon.org \
    --cc=artagnon@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).