Tracking Development History

Git employs commits to group development steps. When a new feature that requires modification of several files is added to the kernel, the changes to all the files are concentrated in a commit that is applied as a whole to a repository. Each commit includes a comment to indicate the purpose of the change. An individual comment may also be added to each file in a commit.

Displaying Commits

The git log command displays all commits applied to a repository. For example: [email protected]> git log commit f1d3 9b291e22 63f5e2f2ec5d40 61802f76d8ae67 tree 29c33d63b3 679103459932d43b8818abdcc7d3d5 parent fd60ae404f104f123 69e654af9cf03b1f10476 61

author Unicorn Chang <[email protected]> Tue, 01 Aug 2006 12:18:07 +0800 committer Jeff Garzik <[email protected]> Thu, 03 Aug 2006 17:34:52 -0400

[PATCH] ahci: skip protocol test altogether in spurious interrupt code

Skip protocol test altogether in spurious interrupt code. If PIOS is receive when it shouldn't, ahci will raise protocol violation.

Signed-off-by: Unicorn Chang <[email protected]> Signed-off-by: Jeff Garzik <[email protected]>

commit c54772e751c0262073e85a7aa87f093fc0dd44f1 tree 5b6ef64c20ac5c2027f73a59bc7a6b4b21f0b63e parent e454358ace657af953b5b289f49cf733 973f41e4

author Brice Goglin <[email protected]> Sun, 30 Jul 2006 00:14:15 -0400 committer Jeff Garzik <[email protected]> Thu, 03 Aug 2006 17:31:10 -0400

[PATCH] myri10ge - Fix spurious invokations of the watchdog reset handler

Fix spurious invocations of the watchdog reset handler.

Signed-off-by: Brice Goglin <[email protected]> Signed-off-by: Jeff Garzik <[email protected]>

commit e4543 58ace657af953b5b289f49cf733 973f41e4 tree 62ab274bead7523e8402e7ee9d15a55e10a0914a parent 817acf5ebd9ea21f134fc900 64b0f6 68 6c5b169d author Brice Goglin <[email protected]> Sun, 30 Jul 2006 00:14:09 -0400 committer Jeff Garzik <[email protected]> Thu, 03 Aug 2006 17:31:10 -0400

[PATCH] myri10ge - Write the firmware in 256-bytes chunks

When writing the firmware to the NIC, the FIFO is 256-bytes long, so we use 256-bytes chunks and a read to wait until the previous write is done.

Signed-off-by: Brice Goglin <[email protected]> Signed-off-by: Jeff Garzik <[email protected]>

Tracking the Development History of a Single File

The git log command also enables the development history of a specific file to be tracked across several commits. It is invoked with a filename as its argument (if the filename is omitted, the development history of the entire project is displayed). Instead of using the text listing, it is much more convenient, however, to observe the history in a graphical front end. Figure B-6 shows the screen display generated by QGit, a QT-based graphical to git.

It is also possible to inspect all changes that were introduced with a specific commit, as illustrated in Figure B-7. This includes the affected files on the right, a description of the patch in the center, and the patch itself below that.

The git fetch command transfers changes made in the parent repository to the local repository. It also enables changes in other repositories to be transferred provided they originate from the same parent repository as the local repository.

Developers with a particular interest in the progress of a specific part of the kernel for which development is performed in an own git repository can integrate all changes that have not found their way into the Torvalds sources in their local repository. For example:

[email protected]> git fetch git://foobar.frobnicate.org/exult.git

The main repository that serves as a template for the local clone is used if git fetch is invoked without a repository name.

Continue reading here: Incorporating Modifications

Was this article helpful?

0 0