git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] revert: libify pick

From
Christian Couder <chriscool@tuxfamily.org>
Date
Aug 1, 2009, 15:48 UTC
Message-ID
<200908011748.30032.chriscool@tuxfamily.org>
In-Reply-To
<7v8wi52uig.fsf@alter.siamese.dyndns.org>
On Friday 31 July 2009, Junio C Hamano wrote:
Show 7 quoted lines
> Christian Couder <chriscool@tuxfamily.org> writes:
> >
> > 	This patch is part of trying to port git-rebase--interactive.sh
> > 	to C using code from the sequencer GSoC project. But maybe it can
> > 	be seen as a clean up too.
>
> Thanks.  Why doesn't this have Stephan's sign-off?
It has it in the v2 series I will post just after sending this email.

As usual feel free to squash all or some of the patches together if you prefer.

Show 10 quoted lines
> The new "pick.c" file seems to be a nicer implementation of the main
> logic of builtin-revert.c and its primary niceness comes from the use of
> strbuf.
>
> A few minor points and comments.
>
>  * error() returns -1.
>
>         error("message");     =>        return error("message");
>         return -1;
This change is in patch 2.
>  * pick() might be a bit too short and abstract name for a generic
> library function.
I changed it to "pick_commit()" in patch 3.
>  * REVERSE is made to imply ADD_NOTE but the codepath that acts on
>    ADD_NOTE never seems to be reached if REVERSE is set.
I removed code that made REVERSE imply ADD_NOTE in patch 4
Show 15 quoted lines
> The intent of pick() funtion looks like it starts from the current index
> (not HEAD), and allow the effect of one commit replayed (either forward
> or backward) to that state, leaving the result in the index.
>
> You do not have to start from a commit, so you can replay many commits to
> the index in sequence without commiting in between to squash multiple
> steps if you wanted to.  I think that makes sense as a nice general
> interface.
>
> The "if (no_commit)" codepath in the original code did things very
> differently from the usual "start from HEAD and replay the effect"
> codepath and it warranted the big "We do not intend to commit
> immediately" comment.  For pick() function, however, the "start from
> index" is the normal and only mode of operation.  Keeping the big comment
> is misleading.
I removed the misleading part and added some of your comments in patch 5.
Show 5 quoted lines
> When it replays another commit on HEAD, the new code does not read "HEAD"
> by hand into head anymore, but it still has the check between the index
> and "HEAD" and refuses to run if the index is dirty, which means the tree
> you get from write_cache_as_tree() is guaranteed to be the same as
> "HEAD", so this conversion looks correct.

Thanks, Christian.

Previous: Junio C Hamano
Message 3 of 3 in “revert: libify pick”
  1. revert: libify pickChristian Couder, Jul 31, 2009
  2. Junio C HamanoJul 31, 2009
  3. Christian CouderAug 1, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.