Git usage in the Common Lisp packaging Team

Still a proposal!

Recommandations for handling the Git repository.

The Git repositories are stored on Alioth, for example for clisp we have:

Repository setup

Upstream goes to a branch called upstream, each upstream version that is packages is also a branch upstream-<version>. The upstream for a released Debian version has a parallel branch called upstream-<Debian code name, for example upstream-lenny.

The debian/ directory lives in the debian-<upstream version> branch. This branch is created new for every new upstream release and is rebased on the new release. So in practice you go:

{{ git checkout -b upstream-2.49 upstream-2.48 #import 2.49 here git add .. git commit ... git rebase --onto debian-2.49 upstream-2.49 debian-2.48 git checkout debian-2.49 dch --newversion 2.49-1 --distribution UNRELEASED }}

Patches and fixes to upstreams are in patch-<name> or typo-<name> branches of the respective upstream source. These are not rebased and should be forwarded to upstream. When patches or fixes are no longer needed in the master-sid branch they are renamed to archive-patch-<name> or archive-typo-name.

The real package itself is build on the master-sid branch, which is branched into the master-testing and master-<Debian release codename> when the package moves there.

The master-sid branch is recreated on each new upstream release like:

{{ git branch -m master-sid master-<debian package version> git checkout -b master-sid debian-<upstream version> git pull . patch-<name> git pull . patch-<name 2> etc }}

If you discover a problem while working on preparing the master-sid branch you fix is in a new branch, for example if you have a build-failure on sparc due to a GCC bug you can do:

{{ git checkout -b patch-sparc-gcc-bug-in-2.49 upstream-2.49 vi ... git commit -a -m '...' git checkout master-sid git pull . patch-sparc-gcc-bug-in-2.49 }}

Don't forget to forward this new patch to upstream.

You build using git-buildpackage --git-debian-branch=master-sid --git-upstream-branch=upstream-<version> -us -uc

Other Guidelines

NMU's and patches

NMU's are strongly encouraged to apply the changes directly into the git repositories.