[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

svn-buildpackage etc., mergeWithUpstream, and dpatch/quilt/cdbs again



I try to keep all changes to upstream as a number of patches in 
debian/patches. I've heard that restricting the .diff.gz to ./debian is a 
Good Thing. The drawback is that the .diff.gz becomes more difficult to read, 
with the diff of diffs and all, but once the source package is unpacked it's 
much easier to get an overview of the changes the maintainer has made. You 
know all that.

More recently, I finally got around to setting up a Subversion repository for 
keeping my packages in. I've heard that keeping package maintenance under 
source control is a pretty good idea, too. (Let's not argue about why Git or 
Arch is so much better at this point; SVN will do fine for now.)

Now, how do you combine these? Several people have thought: "The VCS 
can handle the changesets. Putting patches under VCS is silly!" Maybe it is. 
What's for certain is, that to someone who just does 'apt-get source', the VCS 
gives no benefit. However, he can read debian/copyright and 
debian/README.Debian to find out where the maintainer keeps his repository, 
and reap all the benefits (I can see how a distributed system could benefit 
downstream maintainers in particular).

My question here is: *Whom* is debian/patches *for*? The maintainer or anyone 
who wants to build a customised package, audit the package, etc?

svn-buildpackage has a feature called "mergeWithUpstream mode", which means 
that only the files that are actually touched are put under version control 
(I thought most $TLA-buildpackage would have something similar, but it seems 
to be unique to svn-buildpackage). This works well when all the differences 
are kept inside the debian directory. The Exim maintainers work this way, for 
example. But since svn checkout doesn't give you the whole thing, how do you 
prefer to work (especially with respect to creating patches)? Do you unpack 
the orig tarball on top and set the svn:ignore property to ".", or always use 
svn-buildpackage --svn-ignore? Or do you find it easy enough to use 
dpatch-edit-patch --debianonly? Other comments?

These are some threads I've read:
http://lists.debian.org/debian-devel/2006/07/msg00835.html
http://lists.debian.org/debian-devel-games/2006/07/msg00029.html
And also part of the long "Is Ubuntu a debian derivative or is it a fork?" 
thread.

I my dreams you can tag individual commits and the VCS lets you extract 
separate patches, even if there are several commits with a certain tag, 
intermingled with commits with other tags. Dropping a particular patch (tag) 
(when merging with a new upstream version) will be easy, even if there are 
overlaps between patches. This should work well with the new W&P source 
package format, and you get the best of both worlds. Maybe some of this is 
already possible?

-- 
Magnus Holmgren        holmgren@lysator.liu.se
                       (No Cc of list mail needed, thanks)

Attachment: pgpkBSPvKm8Gz.pgp
Description: PGP signature


Reply to: