blob: ce13c78028f1bcb36089fc3c7556282027849581 [file] [log] [blame]
Git sources for Debian
----------------------
The git Debian package sources are available through git, and
through 'apt-get source git'. Getting the sources through git
should be preferred:
# apt-get install git # if not yet done
$ git clone https://repo.or.cz/r/git/debian.git/ git
$ cd git
After cloning the repository, you have checked out the debian-sid
branch, ready to be used by dpkg-buildpackage, e.g.
$ dpkg-buildpackage -i -rfakeroot -uc -us
If you want to make changes in the ./debian/ subdirectory, this is the
correct branch to work on. After making changes, document them in
debian/changelog, and commit through 'git add' and 'git commit', or 'git
commit -a', or similar. If you think the changes should be incorporated
into the standard Debian package, create the patch[es] through 'git
format-patch', and send them to the Debian Bug Tracking System, e.g.
$ vi debian/rules
$ debchange -pi
$ git commit -a
$ git format-patch HEAD^
If you want to make changes to the upstream git sources, first checkout
the release+patches branch
$ git checkout -b release+patches origin/release+patches
The release+patches branch holds patches on top of the current release
version that is packaged for Debian/unstable. The current release
version is available in the release branch. If you are interested, you
can checkout this branch too
$ git checkout -b release origin/release
When releasing a new Debian package based on a new upstream release, the
release branch will be fastforwarded, and the release+patches branch is
rewound and rebased on the new HEAD of the release branch. This is done
by
$ git checkout release
$ git merge v1.6.5
$ git checkout release+patches
$ git rebase release
You generally don't need to do that, but beware that the release+patches
branch is rewound occasionally.
After checking out the release+patches branch, make the desired changes
to the upstream sources, and commit them. To integrate the changes into
the Debian package, extract these changes, and change to the debian-sid
branch (Note: the file extension for the patches is '.diff', use 'git
config --add format.suffix .diff' to make that the default)
$ git format-patch release..release+patches
$ git checkout debian-sid
Now move the extracted patches into the debian/patches/ directory, add
their filenames to debian/patches/series, add a meaningful message to
debian/changelog, and commit the changes to the debian-sid branch:
$ ls ????-*.diff >> debian/patches/series
$ mv ????-*.diff debian/patches/
$ git add debian/patches
$ debchange -pi
$ git add debian/changelog
$ git commit
Again, if you think the changes should be incorporated into the standard
Debian package, create the patch[es] from the debian-sid branch through
'git format-patch', send them to the Debian Bug Tracking System.
There's a mailing list to coordinate work on the git-core packages, if
you're interested in helping please subscribe to the
<debian-package-git> mailing list by sending an email to
<debian-package-git-subscribe@list.smarden.org>.
-- Gerrit Pape <pape@smarden.org> Sat, 10 Apr 2010 12:28:52 +0000