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

Re: git-svn merge helper

From
Björn Steinbrink <b.steinbrink@gmx.de>
Date
Oct 2, 2007, 22:38 UTC
Message-ID
<20071002223813.GA3152@atjola.homenet>
In-Reply-To
<20071002220458.GA21038@dervierte>
On 2007.10.02 18:04:58 -0400, Steven Walter wrote:
Show 19 quoted lines
> On Tue, Oct 02, 2007 at 11:14:00PM +0200, Björn Steinbrink wrote:
> > One common pattern in SVN is to have the feature branch following the
> > trunk. In git terms, that would mean that the feature branch is
> > continually rebased onto the HEAD of the HEAD AFAICT (although SVN of
> > course cannot represent that). The problem with that is, that git
> > doesn't create a merge commit in that case and git-svn gets confused
> > again.
> > 
> > git checkout mybranch
> > git merge master # Creates a merge commit
> > git checkout master
> > git merge mybranch # Does just fast forward
> > 
> > Is there anyway to force a merge commit or some other work around?
> 
> When I want to do something like this, I go about it one of two ways.
> The first option is to simply rebase mybranch onto master.  Since my
> feature branches are not usually published, there is no problem
> rewinding them.  That may not be an option for you, however.

Unfortunately not, the branch in question is required to be in the SVN repository.

Show 11 quoted lines
> The other option is to have a "build" branch.  By example:
> 
> git checkout build
> git reset --hard master
> git merge mybranch
> make
> 
> In that way, I have branch with the latest changes from head and the
> changes from mybranch together.  The downside to this method is that you
> may have to repeated resolve merges.  Despite the downsides, I find
> these two methods to work quite well.

Thanks, but it makes no difference here, it stil results in a fast forward. This is a small test case which exhibits the behaviour and matches my current workflow with git-svn (except for the dcommits):

git init echo Hi > file1; git add file1; git commit -m file1 git checkout -b branch echo Hi > file2; git add file2; git commit -m file2 git checkout master echo Hi > file3; git add file3; git commit -m file3 git checkout branch git merge master

# Then I'd normally do the following which causes a fast forward #git checkout master #git merge branch

# Now I tried this, which also results in a fast-forward: git checkout -b merge git reset --hard master git merge branch

Anything I'm missing?

Thanks, Björn

Previous: Steven WalterNext: Steven Walter
Message 7 of 10 in “git-svn merge helper”
  1. Björn SteinbrinkSep 30, 2007
  2. Benoit SIGOURESep 30, 2007
  3. Björn SteinbrinkOct 1, 2007
  4. Benoit SIGOUREOct 1, 2007
  5. Björn SteinbrinkOct 2, 2007
  6. Steven WalterOct 2, 2007
  7. Björn SteinbrinkOct 2, 2007
  8. Steven WalterOct 3, 2007
  9. Björn SteinbrinkOct 3, 2007
  10. Andreas EricssonOct 3, 2007

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.