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

Re: git-svn messing up merge commits on dcommit

From
EWEric Wong <normalperson@yhbt.net>
Date
Aug 31, 2009, 01:37 UTC
Message-ID
<20090831013739.GA30367@dcvr.yhbt.net>
In-Reply-To
<20090830013225.GA6475@atjola.homenet>
Björn Steinbrink <B.Steinbrink@gmx.de> wrote:
Show 33 quoted lines
> Hi Eric,
> 
> I have two "test cases" here (attached), which I actually wrote months
> ago, but forgot to sent, as I wanted to clean them up/turn them into
> something suitable for the test suite, but honestly, I'll probably never
> get around to do that, so here they are, as they are. They show git-svn
> messing up merge commits when dcommitting a branch that is not
> up-to-date WRT the svn repo.
> 
> The basic history for both cases (before dcommit) is:
> 
>         C---D (master)
>        /   /
>       /---E (side)
>      /
> A---B (trunk)
>      \
>       X (revision in SVN, not yet fetched)
> 
> So the dcommit (which would send C and D to the svn repo) needs to
> "rebase" C and D.
> 
> In the first test case, this rebasing causes conflicts, and leads to a
> linearized history:
> 
>       E (side)
>      /
> A---B---X---C' (trunk)
>              \
>               D (master)
> 
> The merge is broken apart. This is probably expected, but I thought I'd
> tell anyway.

As noted in the CAVEATS section of the manpage, pull/merge isn't recommended with dcommit because it generates non-linear history.

Keep in mind this was written before SVN got merge tracking support, but I haven't been particularly motivated to revisit the topic since then...

> I hope that makes any sense to you (or you can figure it out from the
> testing scripts).

Thanks for posting these, though. They do seem to be good test cases for developing on and hopefully somebody with more interest in this topic can pick up where we leave off.

On a side note, I have been meaning to refactor git svn and break it apart into separate Perl modules for easier hacking for the longest time now...

-- 
Eric Wong
Previous: Björn Steinbrink
Message 2 of 2 in “git-svn messing up merge commits on dcommit”
  1. Björn SteinbrinkAug 30, 2009
  2. Eric WongAug 31, 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.