All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: Git List <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>,
	Daniel Barkalow <barkalow@iabervon.org>,
	Christian Couder <christian.couder@gmail.com>
Subject: Re: [PATCH 08/10] revert: Introduce HEAD, TODO files to persist state, plan
Date: Thu, 26 May 2011 11:11:02 -0500	[thread overview]
Message-ID: <20110526161102.GC24931@elie> (raw)
In-Reply-To: <1306425233-504-9-git-send-email-artagnon@gmail.com>

Ramkumar Ramachandra wrote:

> --- a/builtin/revert.c
> +++ b/builtin/revert.c
> @@ -573,22 +580,86 @@ static void read_and_refresh_cache(const char *me, struct replay_opts *opts)
[...]
>  	prepare_revs(&revs, opts);
> +	persist_head(head);
> +	persist_todo(revs.commits, opts);
>  
>  	while ((commit = get_revision(&revs))) {
>  		int res = do_pick_commit(commit, opts);
> -		if (res)
> +		if (res) {
> +			commit_list_insert(commit, &revs.commits);
> +			persist_todo(revs.commits, opts);
>  			return res;
> +		}
>  	}

Almost there.  To comfort overly-worried people like me that think we
have not finished converted all die() calls yet, wouldn't this need to
look like

	persist_head(head);
	while ((commit = ...)) {
		int status_or_error;

		/*
		 * Checkpoint.  If do_pick_commit exits, make sure the user
		 * can still use "git cherry-pick --continue" to recover.
		 */
		persist_todo(revs.commits, opts);

		status_or_error = do_pick_commit(...);
		if (status_or_error)
			return status_or_error;
	}

	/* Success! */
	remove_todo(opts);
	remove_head();
	return 0;

And with that, this would no longer depend on the (valuable enough on
their own terms) patches 1 and 2 so they could be treated as a
separate series, no?

  reply	other threads:[~2011-05-26 16:11 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-25 14:16 [PATCH v3 00/10] Sequencer Foundations Ramkumar Ramachandra
2011-05-25 14:16 ` [PATCH 01/10] advice: Introduce error_resolve_conflict Ramkumar Ramachandra
2011-05-25 14:16 ` [PATCH 02/10] revert: Propogate errors upwards from do_pick_commit Ramkumar Ramachandra
2011-05-25 22:44   ` Junio C Hamano
2011-05-26  9:34     ` Ramkumar Ramachandra
2011-05-25 14:16 ` [PATCH 03/10] revert: Eliminate global "commit" variable Ramkumar Ramachandra
2011-05-25 23:10   ` Junio C Hamano
2011-05-25 14:16 ` [PATCH 04/10] revert: Rename no_replay to record_origin Ramkumar Ramachandra
2011-05-25 14:17 ` [PATCH 05/10] revert: Introduce struct to keep command-line options Ramkumar Ramachandra
2011-05-25 14:17 ` [PATCH 06/10] revert: Separate cmdline parsing from functional code Ramkumar Ramachandra
2011-05-25 14:17 ` [PATCH 07/10] revert: Catch incompatible command-line options early Ramkumar Ramachandra
2011-05-25 14:17 ` [PATCH 08/10] revert: Introduce HEAD, TODO files to persist state, plan Ramkumar Ramachandra
2011-05-25 14:17 ` [PATCH 09/10] revert: Implement parsing --continue, --abort and --skip Ramkumar Ramachandra
2011-05-25 14:17 ` [PATCH 10/10] revert: Implement --abort processing Ramkumar Ramachandra
2011-05-25 23:15 ` [PATCH v3 00/10] Sequencer Foundations Junio C Hamano
2011-05-26 15:53 ` [PATCH v4 " Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 01/10] advice: Introduce error_resolve_conflict Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 02/10] revert: Propogate errors upwards from do_pick_commit Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 03/10] revert: Eliminate global "commit" variable Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 04/10] revert: Rename no_replay to record_origin Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 05/10] revert: Introduce struct to keep command-line options Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 06/10] revert: Separate cmdline parsing from functional code Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 07/10] revert: Catch incompatible command-line options early Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 08/10] revert: Introduce HEAD, TODO files to persist state, plan Ramkumar Ramachandra
2011-05-26 16:11     ` Jonathan Nieder [this message]
2011-05-26 16:26       ` Ramkumar Ramachandra
2011-05-26 17:05         ` Ramkumar Ramachandra
2011-05-26 21:03           ` Junio C Hamano
2011-06-01 15:28       ` Ramkumar Ramachandra
2011-06-01 19:31         ` Jonathan Nieder
2011-06-02 12:53           ` Ramkumar Ramachandra
2011-06-02 14:29             ` Jeff King
2011-06-08 13:14               ` Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 09/10] revert: Implement parsing --continue, --abort and --skip Ramkumar Ramachandra
2011-05-26 15:53   ` [PATCH 10/10] revert: Implement --abort processing Ramkumar Ramachandra
2011-05-26 19:13   ` [PATCH v4 00/10] Sequencer Foundations Junio C Hamano
2011-05-27  7:22     ` Ramkumar Ramachandra

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=20110526161102.GC24931@elie \
    --to=jrnieder@gmail.com \
    --cc=artagnon@gmail.com \
    --cc=barkalow@iabervon.org \
    --cc=christian.couder@gmail.com \
    --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 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.