True push not supported
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar Subversion Plugin |
Fix Released
|
High
|
Jelmer Vernooij |
Bug Description
I tried some simple tests with bzr-svn. I created a local svn repo using the svn file protocol. I then branched this repo with bzr. Added a file and then pushed to the repo. I then checked out the repo with svn added another file and committed. In the bzr branch I then modified the first file committed and then tried to push. It correctly told me that the branches had diverged and that I needed to merge first. So I merged from the svn repository but the I got a conflict in the first file (which was not even modified in the repo). Doing a bzr status showed some strange things:
bzr status
added:
hello.txt
test.txt
renamed:
hello.txt => hello.txt.THIS
unknown:
hello.txt.BASE
conflicts:
Contents conflict in hello.txt
pending merges:
ubuntu 2007-01-19 Add test.txt
ubuntu 2007-01-19 Added hello.txt
The exact sequence of commands I executed were:
cd /tmp
svnadmin create svnrepo
bzr branch file:///tmp/svnrepo test-bzr
cd test-bzr/
echo hello > hello.txt
bzr add hello.txt
bzr ci -m "Added hello.txt"
bzr push --remember file://
cd ..
svn co file:///tmp/svnrepo test-svn
cd test-svn
echo test > test.txt
svn add test.txt
svn ci -m "Add test.txt"
cd ../test-bzr/
echo "Hello from bzr" >> hello.txt
bzr ci -m "Update hello.txt in bzr"
bzr push <--- Correct error that I need to merge first. Things go pear shaped from this point on though...
bzr merge bzr status <--- Weird status after merge as hello.txt was not changed at all in subversion working copy. There should be no conflicts
Changed in bzr-svn: | |
assignee: | nobody → jelmer |
Changed in bzr-svn: | |
importance: | Undecided → High |
Changed in bzr-svn: | |
status: | Fix Committed → Fix Released |
This is an artefact caused by the fact that "true" pushes to Subversion
aren't possible. Pushes are always "push-as-merged". Whenever you push a
bazaar revision to Subversion, a new revision is added to Subversion
that merges the revision you pushed. I'm afraid true pushes can't be
supported easily.
The example below works currently if you add a 'bzr pull' after the
first 'bzr push'. That will fetch the new revision that was added to the
Subversion mainline.
I'm open to suggestions for handling this better. samba.org/ ~jelmer/
--
Jelmer Vernooij <email address hidden> - http://