Resolving diverged branches in Subversion repository

Russel Winder russel.winder at concertant.com
Tue Jun 17 18:37:41 BST 2008


On Tue, 2008-06-17 at 17:15 +0200, Jelmer Vernooij wrote:

> I've talked with Russel Winder about adding a command similar to
> git-svn's dcommit command, but that would mean you lose the ability to
> treat the branch in Subversion as any regular bzr branch once you use
> dcommit. 

The issue here is the role of Bazaar/Git with respect to Subversion.

If Subversion is being used as a repository of Bazaar branches then the
current bzr-svn behaviour is necessary (SVK does the same).  If
Subversion contains the master and Bazaar/Git are being used as clients
to get rid of all the .svn directories and provide off-line working and
batched commits, the the current bzr-svn behaviour is sub-optimal and
git-svn does exactly the right thing.

I find that currently Git plays more neatly in the "better client for
Subversion" game than Bazaar, but that is not surprising given that this
is how git-svn was designed compared to the way bzr-svn was designed.
However, Git is a right royal pain in the @rXX compared to Bazaar -- all
those options and the huge inconsistencies. . . 

So despite the fact that I would prefer to use Bazaar as my better
Subversion client, I find that for repositories that are very big
holding many small projects (e.g. Apache Commons) and repositories that
list all property changes (e.g. Codehaus) I end up using Git -- I just
have to live with the hate.  Fortunately for many Subversion
repositories I can use Bazaar, the property changes do not get reported
(but they do take a lot of time), so git-svn is a lot faster than
bzr-svn for this task -- again this is a "by design" issue because of
the different design strategies.

So this is the background to the email exchanges Jelmer and I have had.
I would very much like to have a way of working with Bazaar that worked
more like Git.  The usage model is:

	git svn rebase
	( git add. . . git commit )*
	git svn dcommit

each Git commit is then just translated into a Subversion commit, all
DVCS information is lost.  Git basically treats Subversion as a second
class citizen.

By design, bzr-svn does not work like this even though the basic model
is similar:

	bzr rebase
	(bzr commit )*
	bzr push

-- 
Russel.
====================================================
Dr Russel Winder                 Partner

Concertant LLP                   t: +44 20 7585 2200, +44 20 7193 9203
41 Buckmaster Road,              f: +44 8700 516 084
London SW11 1EN, UK.             m: +44 7770 465 077
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080617/c7196740/attachment.pgp 


More information about the bazaar mailing list