Ok, here is how the layout of the repository is right now:

branches/
 . 1.0/     <---- This maybe needs to be moved to tags/
 . debian/  <---- Where the Debian package of metche lives metche/
          metche/
                 branches/ <-- Debian package branches go here
                 tags/  <-- Where tags of completed debian packages go
                 trunk/ <-- Where the debian package metche work happens
 . python-rewrite/  <-------- Where the python-rewrite will happen
tags/       <----- Where tags of releases go
trunk/      <----- Where current metche development happens

So, if I write this as a story, it goes like this... When working on metche code, we work in the trunk/ directory. When we have decided that what lives in trunk/ is ready to be released to the world, we tag a release. That means that we make a copy of what is in trunk/ into a directory in tags/. For example, the backupninja project has a tags/ directory that looks like this:

backupninja-0.3.4/  backupninja-0.4.1/  backupninja-0.4.4/
backupninja-0.7/    backupninja-0.9/    backupninja-0.9.2/
backupninja-0.4.0/  backupninja-0.4.2/  backupninja-0.5/
backupninja-0.8/    backupninja-0.9.1/  backupninja-0.9.3/

Thats all the releases of backupninja right now. I think that the metche branches/1.0 directory should be moved to tags/metche-1.0.

When working on the debian package of metche, we work in the branches/debian/metche/trunk directory. Typically the 'upstream' developers of software are completely separated from the debian packagers of that software. So, to keep things separated we have a branches directory to hold the debian package of metche. The development of that package happens in the trunk/ directory.

Once we are finished with a debian package, we tag a release of that package into the branches/debian/metche/tags directory. To continue with backupninja examples, the debian tags directory contains all the debian packages that have been released of backupninja:

0.4.3-1/  0.5-1/    0.5-3/  0.7-2/  0.9-1/  0.9.2-2/  0.9.3-1/  0.9.3-3/
0.9.3-5/  0.4.4-1/  0.5-2/  0.7-1/  0.8-2/  0.9.2-1/  0.9.2-3/  0.9.3-2/
0.9.3-4/

Once a new version of metche has been released by upstream (ie. us), we will make a tarball from trunk/metche-x.x and then svn-upgrade it into the debian/metche/trunk directory.

So you can separate logically your work. If you are working on the debian package pieces of metche, you do it in branches/debian/metche/trunk. Once you have finished adding something, commit it to the svn repository, then you can run svn-buildpackage in the same way you run dpkg-buildpackage in that directory (if you like debuild you can run svn-buildpackage --svn-builder debuild). If you have not checked in your changes, svn-buildpackage will complain and not proceed. If you have, it will build the package as normal, putting the resulting package in a local directory ../build-area/ you can then install this package locally to test it out, and once you have decided that your tests are good, then it is ready to be uploaded to debian. You can let me know then because I will need to build the package, sign it and then upload it (until others are also debian developers!). Once I upload the package, I tag a release into the branches/debian/metche/tags directory.

-- Micah (Wed, 05 Apr 2006 10:41:44 -0400)