Pushing branch to SVN re-adds previously deleted tags
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar Subversion Plugin |
New
|
Undecided
|
Unassigned |
Bug Description
I have a BZR branch that was branched off an SVN branch. The moment it was branched from the main repository several tags were present in the /tags directory. Some revisions later one of the tags was removed by calling svn rm tags/tagname. Next time I pushed a change from my BZR branch back to the SVN repository Bazaar incorrectly re-created the tag that was deleted.
I have reproduced this using a clean repository. This is the scenario:
$ svnadmin create /tmp/svntest-repo
$ mkdir /tmp/svntest
$ mkdir /tmp/svntest/
$ cd /tmp/svntest/
$ svn import -m "Initial repo population" . file://
$ rm -Rf *
$ svn co file://
$ echo "Hello world" > trunk/test1.txt
$ svn add trunk/test1.txt
$ svn commit -m "Add test file"
$ svn copy -m "Test tag" file://
$ cd ..
$ bzr branch file://
$ cd svntest-bzr
$ svn rm -m "Remove tag" file://
$ bzr pull
Using saved parent location: /tmp/svntest-
No revisions to pull.
$ echo "Hello world 2" > test2.txt
$ bzr add test2.txt
$ bzr commit -m "Add test2 file"
$ bzr push file://
$ svn log -v file://
-------
r6 | krzysn | 2012-02-03 10:43:04 +0100 (Fri, 03 Feb 2012) | 1 line
Changed paths:
A /tags/tag1 (from /trunk:2)
Add tag tag1
-------
r5 | krzysn | 2012-02-03 10:43:04 +0100 (Fri, 03 Feb 2012) | 1 line
Changed paths:
M /trunk
A /trunk/test2.txt
Add test2 file
-------
r4 | krzysn | 2012-02-03 10:42:03 +0100 (Fri, 03 Feb 2012) | 1 line
Changed paths:
D /tags/tag1
Remove tag
-------
r3 | krzysn | 2012-02-03 10:39:36 +0100 (Fri, 03 Feb 2012) | 1 line
Changed paths:
A /tags/tag1 (from /trunk:2)
Test tag
-------
r2 | krzysn | 2012-02-03 10:34:17 +0100 (Fri, 03 Feb 2012) | 1 line
Changed paths:
A /trunk/test1.txt
Add test file
-------
r1 | krzysn | 2012-02-03 10:32:53 +0100 (Fri, 03 Feb 2012) | 1 line
Changed paths:
A /branches
A /tags
A /trunk
Initial repo population
-------
SVN revision 6 re-adds the previously created tag. I thing bzr-svn should also track removal of tags in the SVN repository.
Workaround for this is to remove the tag manually using 'bzr tag --delete' before pushing.