Marcelo E. Magallon wrote: > I was looking for some pointers about managing package sources with > subversion. I've got a grasp of the basics and I have looked at a > couple of examples (most notably Branden's SVN repository for the > XFree86 packages). My main concern right now is migrating an > _existing_ CVS repository which is being managed with cvs-buildpackage > to SVN, but I'd appreciate other tips. I'm only managing one package (mooix) with subversion so far, and I use a collection of handrolled scripts instead of cvs-buildpackage (and my scripts support subversion now), but here's my two cents: - cvs2svn works ok, but can be _very_ slow. Be prepared for significant archive bloat too. I also had to run it three times due to some subversion bug that I have supressed memory of. - I haven't gotten this far yet, but I am very unsure whether it makes more sense to use one subversion repository per package, or one big repo for everything. The latter has few downsides in cvs, but it might make sense to go with the former for subversion. - After I imported mooix into subversion, I went back and de-munged all the tags generated by cvs-buildpackage. cvs has limits on tag names (no periods allowed) so you probably have ugly tags like debian_version_1_01 and so on. You can use svn mv, pointed directly at the repo, to rename these tags to debian_version_1.01 or whatever you feel is appropriate. - For building the package, you have two choices. You can either build direct from the subversion checkout, which requires passing -I.svn to dpkg-buildpackage, and putting .svn in $DH_ALWAYS_EXCLUDE. This is a hack of course. Or you can use subversion's nice fast export command to get a clean export without the .svn directories and build in there. Note that svn export copies the tree, including any uncommitted changes, which is both good and bad. You can use it while offline. I'm probably going to switch to using this technique. - After committing a new version, you'll want to generate a tag. Of course you do this with a svn cp; I modified my 'release' script to come up with subversion tags and do to svn cp automatically. -- see shy jo
Attachment:
pgpqTJJSVwR4Z.pgp
Description: PGP signature