Re: git-svn and repository hierarchy?
From: Josef Wolf <hidden>
Date: 2016-06-15 22:46:18
On Wed, Feb 25, 2009 at 10:26:10AM +0100, Michael J Gruber wrote:
Josef Wolf venit, vidit, dixit 24.02.2009 23:34:
quoted
I have set up a repository hierarchy like this: subversion-repos | git-svn-repos / | \ clone1 clone2 clone3Recent 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?