Git usage in the Common Lisp packaging Team
In use for clisp.
Recommandations for handling the Git repository.
The Git repositories are stored on Alioth, for example for clisp we have:
For people with Alioth access: git clone ssh://git.debian.org/git/pkg-common-lisp/clisp.git
- Anonymous access either one of:
git clone http://git.debian.org/git/pkg-common-lisp/clisp.git
git clone git://git.debian.org/git/pkg-common-lisp/clisp.git
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-<debian 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-1 upstream-2.49 debian-2.48-3 git checkout debian-2.49-1 dch --newversion 2.49-1 --distribution UNRELEASED
Patches and fixes to upstreams are in quilt and live also in the debian-<version> branches.
You build using git-buildpackage --git-debian-branch=debian-<debian version> --git-upstream-branch=upstream-<version> -us -uc
- Keep the distribution UNRELEASED until we release
Keep one commit to one consistent change, use git commit --amend in case you make mistakes
- After each upload, the first commit should be creating a new changelog entry with distribution set to UNRELEASED
- If upstream uses a SVC consider importing the upstream changes into the git tree.
NMU's and patches
NMU's are strongly encouraged to apply the changes directly into the git repositories.