Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
staging [2009/11/21 18:54] mdc |
staging [2010/01/15 13:00] (current) stefanha |
||
---|---|---|---|
Line 3: | Line 3: | ||
{{ :bootrom.jpeg?120x96|A boot ROM}} | {{ :bootrom.jpeg?120x96|A boot ROM}} | ||
- | The [[http://git.etherboot.org/?p=gpxe-staging.git|staging tree]] is used to hold branches with patches for review and merging into the [[http://git.etherboot.org/?p=gpxe.git|main gPXE tree]]. It provides a central location for collecting patches submitted via the mailing list, IRC, and other methods. | + | The [[http://git.etherboot.org/?p=gpxe-staging.git|staging tree]] is used to hold branches waiting for potential merging into the [[http://git.etherboot.org/?p=gpxe.git|main gPXE tree]]. It provides a central location for collecting patches submitted via the mailing list, IRC, and other methods. |
Most branches in the staging tree hold individual features, such as a new driver, and are referred to as "feature branches". | Most branches in the staging tree hold individual features, such as a new driver, and are referred to as "feature branches". | ||
- | Once a feature branch is merged into the main gPXE tree, it will be deleted from the staging tree. | + | After a feature branch is merged into the main gPXE tree, it is deleted from the staging tree. |
===== Trying out a feature branch ===== | ===== Trying out a feature branch ===== | ||
Line 173: | Line 173: | ||
=== Indicating readiness for final merge review === | === Indicating readiness for final merge review === | ||
- | When a sponsor believes that an appropriate window of opportunity for review has expired, they may then rename their branch in the staging repository in the following format: | + | When a sponsor believes that an appropriate window of opportunity for review has expired, they may send a pull request email to staging@etherboot.org. This is an indication to main branch maintainers that the feature is now ready for final merge review. |
- | sponsor_name-task_number-feature_branch_name-ready | + | The email subject should be as follows: |
- | This is an indication to main branch maintainers that the feature is now ready for final merge review. | + | [PULL REQUEST] sponsor_name-task_number-feature_branch_name |
+ | |||
+ | The pull request email message can be generated as follows: | ||
+ | |||
+ | $ # Currently on the staging branch | ||
+ | $ git request-pull master git://git.etherboot.org/scm/gpxe-staging.git | ||
Note to staging tree maintainers: | Note to staging tree maintainers: | ||
Line 185: | Line 190: | ||
$ git push staging local_name:refs/heads/remote_name | $ git push staging local_name:refs/heads/remote_name | ||
- | Main repository maintainers can easily check for branches pending final merge review with | + | Main repository maintainers respond to the pull request email by performing final review and merging the branch if it passes review. |
- | + | ||
- | $ git branch -r -v | grep ready | + | |
- | + | ||
- | or by using gitweb to view all branches in the staging repository: | + | |
- | + | ||
- | http://git.etherboot.org/?p=gpxe-staging.git;a=heads | + | |
=== Final merge review procedure === | === Final merge review procedure === | ||
Line 215: | Line 214: | ||
$ git am < new_feature_v2.patch | $ git am < new_feature_v2.patch | ||
$ git push staging sponsor_name-task_number-feature_branch_name_v2 | $ git push staging sponsor_name-task_number-feature_branch_name_v2 | ||
- | |||
==== Some useful git commands for staging maintainers ==== | ==== Some useful git commands for staging maintainers ==== | ||
=== Ways to view the staging repository === | === Ways to view the staging repository === | ||
+ | |||
+ | == View compact listing of remote branches == | ||
$ git branch -r -v | $ git branch -r -v | ||
+ | |||
+ | == Look at staging branch commits == | ||
+ | |||
$ git log staging/branch_name | $ git log staging/branch_name | ||
+ | |||
+ | == Show commits in staging branch not in main branch == | ||
+ | |||
+ | $ git cherry -v HEAD staging/branch_name | ||
=== Prune remote branches from local repository === | === Prune remote branches from local repository === | ||
Line 242: | Line 249: | ||
The ":" character before the remote_branch_name is required for the push to work. | The ":" character before the remote_branch_name is required for the push to work. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- |