Re: [PATCH 3/7] sequencer: handle single-commit pick as special case

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ramkumar Ramachandra <artagnon@xxxxxxxxx> writes:

> Hi Junio,
>
> Junio C Hamano writes:
>> Ramkumar Ramachandra <artagnon@xxxxxxxxx> writes:
>>> [...]
>> [...]
>> I do not see an inconsistency here, let alone any "glaring" one.
>
> Yeah, my commit message is totally misleading and unclear.  Yes, all
> the operations make sense to you and me; for a new user who doesn't
> understand how Git works, it's completely inconsistent at a very
> superficial level, no?  The sequence of operations he has to execute
> depends on:
> 1. If he literally specified a single commit or a commit range on the
> command-line.

But we are already in agreement on this point, I think. Didn't I say:

  It is a different story if the sequence were like this:

      $ git cherry-pick foo
      ... conflict happens
      $ edit problematicfile
      $ git add problematicfile
      $ git cherry-pick --continue
      ... This should notice CHERRY_PICK_HEAD and record it.
      ... After that, there is nothing remaining to be done.

  In other words, the user said "I want to replay this commit", the command
  couldn't finish it by itself and asked the user to help resolving the
  conflict, the user resolved and told the command to continue. The command
  should continue recording the result.

  And if "continue" does not work in this sequence, that is a bug worth
  fixing.

in the message you are responding to?

> 2. In the case of multi-commit picking, there's an additional layer of
> decision making: did the conflict occur in the last commit in the
> range?

Again, it would be the same thing. If the implementation forces that
decision, that would be a bug, no?

My understanding is that multi-commit form of cherry-pick and revert
intended to allow two forms of "user done helping and telling the command
to continue" at any stage, be it the first, in the middle, or the last
operation in a series:

 - User resolves, adds and commits, and then tells the command to
   continue. The command notices that the user has committed, and goes on
   to the next task; or

 - User resolves, adds, and then tells the command to continue. The
   command notices that the user has not committed, makes a commit and
   goes on to the next task.

I think "rebase -i" works the same way and both are valid ways to tell the
command to continue.

Now, multi-commit form of cherry-pick/revert _may_ be buggy (I do not use
that form often myself to know if this is the case, though) and may only
allow one or the other depending on which commit in the series the user is
asked to help, but if that is the case it is a bug in the implementation
of the multi-commit form done back in v1.7.2 timeframe.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]