| 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 |