git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Ramkumar Ramachandra <artagnon@gmail.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Git List <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>,
	Christian Couder <chriscool@tuxfamily.org>,
	Daniel Barkalow <barkalow@iabervon.org>
Subject: Re: [PATCH 12/14] revert: Introduce --reset to cleanup sequencer data
Date: Thu, 7 Jul 2011 08:33:54 +0530	[thread overview]
Message-ID: <CALkWK0nfakukih6m=r86RA8xvNt2BxJaUUNw9XRJ4Z6n3e=sJg@mail.gmail.com> (raw)
In-Reply-To: <20110706192141.GA23516@elie>

Hi again,

Jonathan Nieder writes:
> Ramkumar Ramachandra wrote:
>
>>> --- a/t/t3507-cherry-pick-conflict.sh
>>> +++ b/t/t3507-cherry-pick-conflict.sh
> [...]
>> As you can see, there is no "reset --hard" in these
>
> In this one, there's "git checkout -f && git read-tree -u --reset HEAD
> && git clean -fdx", which is almost the same thing.

Ofcourse, but it's a combination of three commands -- are you
suggesting that I replace this sequence of commands with "git reset
--hard"?.

>>> --- a/t/t3505-cherry-pick-empty.sh
>>> +++ b/t/t3505-cherry-pick-empty.sh
>
> This one is not a typical script, I think --- if you knew the
> cherry-pick was going to be empty, why did you try it in the first
> place?  I think it would make sense to make it "git reset --hard" at
> the beginning of each test as a separate, preparatory patch with
> explanation.
>
> [...]
>> There is however, one other thing I can do: if there is
>> nothing left to cherry-pick after a successful conflict resolution +
>> git commit, I can modify commit.c to blow away the sequencer state
>> after checking appropriately.  This will also have a nice end-user
>> experience side-effect:
>> $ git cherry-pick moo
>> fatal: Conflict in foo!
>> $ echo "Resolved" > foo
>> $ git add moo
>> $ git commit
>> $ git cherry-pick --continue # This no-op will be unnecessary
>
> Though it's not obvious to me how this would affect the scripts above,
> it sounds like a nice enhancement to me independently, fwiw.

Oh, it fixes everything :)
Just see my GitHub fork.

>> Then again, teaching commit about the sequencer is inelegant,
>
> It's possible to add some hook-like thing to do this, or to structure
> the code as if a hook was used.
>
>> and it's
>> possible to achieve this effect in another way: when a conflict is
>> encountered in the sequencer && length(todo_file) == 1, throw away the
>> sequencer state.
>
> Yep, that seems like basically the same effect.  Are there downsides?
> (Maybe years from now when a "git cherry-pick --rewind" is introduced
> we would regret this?  But that can be figured out years from now.)

> Doh, I'm not thinking straight.  Would this break "git cherry-pick
> --abort", or is there some hack layered on top to avoid that?  Making
> "git commit" remove the .git/sequencer for the last commit of the
> sequence seems a little saner.

We could always inject a hack to avoid this.  I'm not yet convinced
that we should teach commit about the sequencer, especially since the
patch to do it from the sequencer end is so simple.  Please have a
look at the patch [1], and let me know what you think.  I could submit
it as an RFC patch to the list for convenience, but I'm afraid it'll
be missing context.

[1]: https://github.com/artagnon/git/commit/0653bcccfa8d69687ed939f07f5b32dd14d302d3

-- Ram

  parent reply	other threads:[~2011-07-07  3:04 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-06  7:54 [GSoC update] Sequencer: The insn sheet format Ramkumar Ramachandra
2011-07-06  7:54 ` [PATCH 01/14] advice: Introduce error_resolve_conflict Ramkumar Ramachandra
2011-07-06  8:35   ` Jonathan Nieder
2011-07-06  9:28     ` Ramkumar Ramachandra
2011-07-06 10:03       ` Jonathan Nieder
2011-07-06  7:54 ` [PATCH 02/14] revert: Inline add_message_to_msg function Ramkumar Ramachandra
2011-07-06  7:54 ` [PATCH 03/14] revert: Don't check lone argument in get_encoding Ramkumar Ramachandra
2011-07-06  7:54 ` [PATCH 04/14] revert: Rename no_replay to record_origin Ramkumar Ramachandra
2011-07-06  7:54 ` [PATCH 05/14] revert: Propogate errors upwards from do_pick_commit Ramkumar Ramachandra
2011-07-06  8:50   ` Jonathan Nieder
2011-07-06  9:30     ` Ramkumar Ramachandra
2011-07-06  7:54 ` [PATCH 06/14] revert: Eliminate global "commit" variable Ramkumar Ramachandra
2011-07-06  8:55   ` Jonathan Nieder
2011-07-06  9:37     ` Ramkumar Ramachandra
2011-07-06  7:54 ` [PATCH 07/14] revert: Introduce struct to keep command-line options Ramkumar Ramachandra
2011-07-06  9:09   ` Jonathan Nieder
2011-07-06 11:20     ` Ramkumar Ramachandra
2011-07-06 12:06       ` Jonathan Nieder
2011-07-12  6:14         ` Ramkumar Ramachandra
2011-07-06 21:20   ` Junio C Hamano
2011-07-12  6:21     ` Ramkumar Ramachandra
2011-07-12  6:33       ` Jonathan Nieder
2011-07-06  7:54 ` [PATCH 08/14] revert: Separate cmdline parsing from functional code Ramkumar Ramachandra
2011-07-06  9:13   ` Jonathan Nieder
2011-07-06  9:34     ` Ramkumar Ramachandra
2011-07-06  7:54 ` [PATCH 09/14] revert: Don't create invalid replay_opts in parse_args Ramkumar Ramachandra
2011-07-06  9:20   ` Jonathan Nieder
2011-07-06  7:54 ` [PATCH 10/14] revert: Persist data for continuation Ramkumar Ramachandra
2011-07-06 10:01   ` Jonathan Nieder
2011-07-06 11:55     ` Ramkumar Ramachandra
2011-07-06 21:20     ` Junio C Hamano
2011-07-06  7:54 ` [PATCH 11/14] revert: Introduce a layer of indirection over pick_commits Ramkumar Ramachandra
2011-07-06 10:37   ` Jonathan Nieder
2011-07-06 11:24     ` Ramkumar Ramachandra
2011-07-06 11:39       ` Jonathan Nieder
2011-07-06 11:44         ` Ramkumar Ramachandra
2011-07-06 11:53           ` Jonathan Nieder
2011-07-06 21:00   ` Junio C Hamano
2011-07-07  6:31     ` Ramkumar Ramachandra
2011-07-06  7:54 ` [PATCH 12/14] revert: Introduce --reset to cleanup sequencer data Ramkumar Ramachandra
2011-07-06 10:14   ` Jonathan Nieder
2011-07-06 10:55     ` Ramkumar Ramachandra
2011-07-06 14:32   ` Ramkumar Ramachandra
2011-07-06 19:21     ` Jonathan Nieder
2011-07-06 19:56       ` Jonathan Nieder
2011-07-07  3:03       ` Ramkumar Ramachandra [this message]
2011-07-06  7:54 ` [PATCH 13/14] revert: Introduce --continue to continue the operation Ramkumar Ramachandra
2011-07-06 10:25   ` Jonathan Nieder
2011-07-06 21:21   ` Junio C Hamano
2011-07-06 21:52     ` Drew Northup
2011-07-07  6:35     ` Ramkumar Ramachandra
2011-07-06  7:54 ` [RFC PATCH 14/14] revert: Change insn sheet format Ramkumar Ramachandra
2011-07-06 10:33   ` Jonathan Nieder
2011-07-06 10:49     ` Ramkumar Ramachandra
2011-07-06 10:41 ` [GSoC update] Sequencer: The " Jonathan Nieder

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='CALkWK0nfakukih6m=r86RA8xvNt2BxJaUUNw9XRJ4Z6n3e=sJg@mail.gmail.com' \
    --to=artagnon@gmail.com \
    --cc=barkalow@iabervon.org \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --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).