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

Re: [RFC/PATCH] Option to revert order of parents in merge commit

From
Kacper Kornet <draenog@pld-linux.org>
Date
Nov 26, 2012, 12:42 UTC
Message-ID
<20121126124200.GA29859@camk.edu.pl>
In-Reply-To
<7vfw3zzoye.fsf@alter.siamese.dyndns.org>
On Fri, Nov 23, 2012 at 06:58:49PM -0800, Junio C Hamano wrote:
> Kacper Kornet <draenog@pld-linux.org> writes:
> > The following patch is an attempt to implement this idea.
> I think "revert" is a wrong word (implying you have already done
> something and you are trying to defeat the effect of that old
> something), and you meant to say "reverse" (i.e. the opposite of
> normal) or something.

You are right. Probably transpose is the best description what the patch really does.

> I am unsure about the usefulness of this, though.
> After completing a topic on branch A, you would merge it to your own
> copy of the integration branch (e.g. 'master') and try to push,
> which may be rejected due to non-fast-forwardness:
>     $ git checkout master
>     $ git merge A
>     $ git push
> At that point, if you _care_ about the merge parent order, you could
> do this (still on 'master'):
Show 5 quoted lines
>     $ git fetch origin
>     $ git reset --hard origin/master
>     $ git merge A
>     $ test test test
>     $ git push
> With --reverse-parents, it would become:
>     $ git pull --reverse-parents
>     $ test test test
>     $ git push
> which certainly is shorter and looks simpler.  The workflow however
> would encourage people to work directly on the master branch, which
> is a bit of downside.

Our developers work mainly on master branches. The project consists of many thousands independent git repositories, and at the given time a developer usually wants to make only one commit in the given repository and push his changes upstream. So he usually doesn't care to make a branch. Then after failed pushed, one needs to add creation and removal of temporary branch (see the commit message of the suggested patch). The possibility to do git pull --reverse-parent would make the life easier in this case.

> Is there any interaction between this "pull --reverse-parents"
> change and possible conflict resolution when the command stops and
> asks the user for help?  For example, whom should "--ours" and "-X
> ours" refer to?  Us, or the upstream?

The change of order of parents happens at the very last moment, so "ours" in merge options is local version and "theirs" upstream.

-- 
  Kacper Kornet
Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 5 in “Option to revert order of parents in merge commit”
  1. Option to revert order of parents in merge commitKacper Kornet, Nov 23, 2012
  2. Junio C HamanoNov 24, 2012
  3. Kacper KornetNov 26, 2012
  4. Junio C HamanoNov 26, 2012
  5. Aaron SchrabNov 26, 2012

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.