Len Brown maintains the Linux ACPI project git source repository. This makes git an ideal tool for getting the latest source code.
A good set of git startup instructions can be found at http://linux.yyz.us/git-howto.html.
To create a copy of the Linux ACPI git tree from scratch:
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
But, note that most Linux Kernel developers have already created a copy of Linus Torvalds' upstream kernel tree for reference:
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
The Linux ACPI is based on Linus' tree and shares almost all of the same history. So, if you've got a copy of Linus' tree, simply create the Linux ACPI tree, with reference to that shared history:
$ git clone --reference linux-2.6\ git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
Len follows Tony Luck's method of using git branches, documented in the git user manual under "Maintaining topic branches for a Linux subsystem maintainer".
So, there are multiple branches within the Linux/ACPI git tree.
The latest patches intended for Linus are on the release branch:
The latest patches intended for community testing are on the test branch:
Andrew Morton periodically pulls the test branch and creates a consolidated git-acpi.patch and applies it to his mm release.
Sometimes, there are other topic-specific branches, such as "acpica", "cpuidle", and "suspend", which are included in the test branch, but are also available for individual testing.
You can view them this way:
$ git branch -r origin/HEAD origin/cpuidle origin/linus origin/release origin/test
To change branches, say to the release branch:
$ git checkout origin/release
Beware that Len takes the liberty of occasionally rewriting the history of the test branch. So, you may have conflicts if you re-pull into an "untouched" repository. Sorry about that.
This is because:
- Andrew Morton doesn't care about history, he consolidates the entire tree into a single patch anyway.
- Linus Torvalds wants a "clean history".
- Len wants Linus to get exactly what Andrew tested, merges and all.
If you use git for creating patches, please base them off of Linus' upstream kernel, rather than on the ACPI test branch. If they conflict with other patches in the ACPI test tree, you can use a separate merge patch to merge the two, or Len can merge them for you.
Note that Len does not generally pull from other developer's git trees. He prefers to pull patches from the mailing list, where they receive the widest review. So if you use git to check in your own patches, please use its features to format and e-mail the patches to the list for review.