Branching from an import, but briefly using an svn branch

Colin Watson cjwatson at ubuntu.com
Wed Jun 28 10:57:24 BST 2006


Summary: I'm in the process of creating a bzr branch of a vcs-import;
the branch represents the history of an Ubuntu package, based on the
corresponding Debian package (which in this case equals upstream). The
code in Debian is stored in an svn repository. For the most part, the
import comes from the trunk; however, there was a brief period in the
Ubuntu package's history where it was based on an svn branch. I
understand that imports of svn branches are not supported and that this
is unlikely to change in the near future. What is my best course of
action?

Details:

The d-i component "base-installer" is represented in Launchpad by a
product of the same name. Its "main" series comes from
svn://svn.debian.org/d-i/trunk/packages/base-installer. I have a
complete record of every Ubuntu upload of base-installer I've ever made
(numbering 59 in total, including some fairly large changes) and I'd
like to import all this history into bzr so that future merges become
easier.

For the most part, my Ubuntu packages have been based on the Subversion
trunk, making life relatively straightforward; I've imported up to
version 1.20ubuntu7 (the version in Ubuntu Breezy) without issues.
However, at the beginning of the Dapper cycle, d-i upstream was branched
in preparation for a beta release, and the best version available for me
to merge was 1.35.5, which was released from
svn://svn.debian.org/svn/d-i/branches/packages/base-installer/etch-beta1
rather than from the trunk. Version 1.35.5ubuntu1 was based on this.
After that single package release, I went back to the svn trunk, and
both the version in Dapper and the version I'd like to merge into Edgy
come from the trunk.

What is the best way for me to represent this history in bzr? I can see
two reasonable courses of action:

  * Attempt to run Launchpad's version of cscvs manually on the svn
    branch, and merge the resulting bzr branch into my Ubuntu branch of
    base-installer. This takes advantage of the fact that I happen to
    have access to that version of cscvs (and indeed have contributed
    improvements to it in the past), and so I suppose it might
    contravene policy. It also requires me to figure out how to run it
    in a way that produces "safe" imports (i.e. with the correct ids
    etc.), and I might need help with that. However, it produces the
    highest quality of import.

  * Manually import each successive Debian package release along the
    branch from 1.35 to 1.35.5 in the same way that I import old Ubuntu
    packages (i.e. by unpacking the package, copying in the .bzr
    directory from the previous one, dealing with any file adds or
    renames, and running 'bzr commit'). This would work now without any
    particular controversy; the Debian package releases in question are
    all available from snapshot.debian.net. However, if the upstream
    branch were ever imported in future, my branch would not be
    compatible with it. This isn't a particularly big deal in this
    particular case, but it might be an issue in some other similar case
    in future.

I'd appreciate advice on what I should do here.

Thanks,

-- 
Colin Watson                                       [cjwatson at ubuntu.com]



More information about the launchpad-users mailing list