All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Björn Steinbrink" <B.Steinbrink@gmx.de>
To: Steven Walter <stevenrwalter@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: git-svn merge helper
Date: Wed, 3 Oct 2007 00:38:13 +0200	[thread overview]
Message-ID: <20071002223813.GA3152@atjola.homenet> (raw)
In-Reply-To: <20071002220458.GA21038@dervierte>

On 2007.10.02 18:04:58 -0400, Steven Walter wrote:
> 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.

> 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

  reply	other threads:[~2007-10-02 22:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-30 11:05 git-svn merge helper Björn Steinbrink
2007-09-30 14:15 ` Benoit SIGOURE
2007-10-01  2:50   ` Björn Steinbrink
2007-10-01  7:56     ` Benoit SIGOURE
     [not found]       ` <8c5c35580710010113v7d4ad14bt129b7cb12d8f4fb8@mail.gmail.com>
2007-10-02 21:14         ` Björn Steinbrink
2007-10-02 22:04           ` Steven Walter
2007-10-02 22:38             ` Björn Steinbrink [this message]
2007-10-03  0:42               ` Steven Walter
2007-10-03  1:02                 ` Björn Steinbrink
2007-10-03 11:40                   ` Andreas Ericsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071002223813.GA3152@atjola.homenet \
    --to=b.steinbrink@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=stevenrwalter@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.