Re: git-svn and repository hierarchy?
- From
- Josef Wolf <jw@raven.inka.de>
- Date
- Feb 27, 2009, 17:12 UTC
- Message-ID
- <20090227171248.GB14187@raven.wolf.lan>
- In-Reply-To
- <49A50EB2.80300@drmicha.warpmail.net>
On Wed, Feb 25, 2009 at 10:26:10AM +0100, Michael J Gruber wrote:
> Josef Wolf venit, vidit, dixit 24.02.2009 23:34:
Show 11 quoted lines
> > I have set up a repository hierarchy like this: > > > > > > subversion-repos > > | > > git-svn-repos > > / | \ > > clone1 clone2 clone3 > > Recent enough git should even warn you against doing that, "that" being > pushing into checked out branches.
I've now tried to synchronize via pull instead of push, but I still get conflicts.
> Your diagram above is missing important info, namely which branches you > are pushing into. But the problem indicates that you are pushing into a > checked out branch.
In order to get a better understanding what's going on, I've written a small script which can be copy-pasted into some terminal window:
( set -ex
# create test directory # TESTDIR=`mktemp --tmpdir=. git-svn-hierarchy-test-XXXXXXXX` rm -rf $TESTDIR mkdir -p $TESTDIR cd $TESTDIR
SUBVERSION_REPOS=file://`pwd`/subversion-repos
# create subversion repos with some history
#
svnadmin create subversion-repos
svn -m "create standard layout" mkdir \
$SUBVERSION_REPOS/trunk \
$SUBVERSION_REPOS/branches \
$SUBVERSION_REPOS/tags
svn co $SUBVERSION_REPOS/trunk subversion-wc
echo change1 >>subversion-wc/test
svn add subversion-wc/test
svn ci -m "commit 1" subversion-wc# create git-svn-repos # git svn init --stdlayout $SUBVERSION_REPOS git-svn-repos (cd git-svn-repos; git svn fetch)
# create a clone and do some work on it
#
git clone git-svn-repos clone1
for i in 2 3 4; do
( cd clone1; echo change$i >>test ; git commit -a -m "commit $i")
done(cd git-svn-repos; git pull ../clone1) (cd git-svn-repos; git svn rebase) (cd git-svn-repos; git svn dcommit) (cd git-svn-repos; git pull ../clone1) # if this line is executed, (cd git-svn-repos; git svn rebase) # this command gives the conflict )
When I comment out the second "git pull ../clone1", the conflict does not happen on the last "git svn rebase", but on some later pull, rebase or dcommit command.
Obviously, I'm doing something wrong. But I can't figure what. Any hints?