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

Re: [PATCH 4/5] Head reduction before selecting merge strategy

From
Sverre Hvammen Johansen <hvammen@gmail.com>
Date
May 4, 2008, 04:52 UTC
Message-ID
<402c10cd0805032152g1cb3f10cr69f1735785c5d647@mail.gmail.com>
In-Reply-To
<m3prsep6oy.fsf@localhost.localdomain>
On Fri, Apr 25, 2008 at 3:31 AM, Jakub Narebski <jnareb@gmail.com> wrote:
Show 15 quoted lines
> "Sverre Hvammen Johansen" <hvammen@gmail.com> writes:
>
>  > See the documentation for an explanation of this feature.
>
>  I think I get the idea now.
>
>  You want to generalize fast-forward merge, or what's equivalent make
>  fast-formard merge to be special case of head reduction.  This should
>  be written both in commit message and in documentation.  Do I
>  understand your goal correctly?
>
>  With head reduction comes three things:
>   * the merge strategy used
>   * recorded parents
>   * generated merge commit message

The recorded parents and the generated merge commit message is the same with or without this patch. The only difference is the merge strategy used.

>  The simplest way would be to use reduced head for all three things,
>  I think.
Actually, we can't do that.  A real merge always need to involve HEAD.
 In the case that HEAD is not included in the reduced parents we could
do a FF+merge, but that is a rather radical change that deserve its
own patch.
Changing the generated merge commit message is also a radical change.

I don't intend to write any patches for this for now. Maybe later if the series gets accepted.

>  But I also think that this commit in series is the most controversial
>  one; is it realy needed for other commits?  I would put it then as the
>  last commit in series...

I agree with you, but I don't intend to spend time on this now to rewrite it again. I am quite happy with how the series turned out.

Show 16 quoted lines
>  > +The following shows master and three topic branches.  topicB is based
>  > +on topicA, topicA is previously branched off from master, and topicC
>  > +is based on the tip of the master branch:
>  > +
>  > +------------
>  > +                    o---o---o  topicB
>  > +                   /
>  > +          o---o---o  topicA
>  > +         /
>  > +    o---o---o---o---o---o  master
>  > +                         \
>  > +                          o---o  topicC
>  > +------------
>
>  I think I would start with simpler example without 'topicC', of
>  reduction of octopus to two-parent ordinary merge.

I am not sure that we need to have this in the documentation at all. I have asked for comments on this before but not received any feedback. This late, the documentation will have to be fixed in-tree, if needed.

Show 11 quoted lines
>  > diff --git a/git-merge.sh b/git-merge.sh
>  > index 7c34b6c..7c70c56 100755
>  > --- a/git-merge.sh
>  > +++ b/git-merge.sh
>  > @@ -337,11 +337,16 @@ set x $remoteheads ; shift
>  >
>  >  find_reduced_parents "$@"
>  >
>  > -actual_parents=$(git rev-parse "$@")
>
>  This was introduced by some of your earlier commits, isn't it?
Yes,  [PATCH 3/5] Restructure git-merge.sh
-- 
Sverre Hvammen Johansen
Previous: Jakub Narebski
Message 3 of 3 in “Head reduction before selecting merge strategy”
  1. 4/5 Head reduction before selecting merge strategySverre Hvammen Johansen, Apr 24, 2008
  2. Jakub NarebskiApr 25, 2008
  3. Sverre Hvammen JohansenMay 4, 2008

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.