Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
soc:2008:git-usage [2008/05/22 07:32] mdc created |
soc:2008:git-usage [2008/06/09 06:26] (current) mdc |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Using git for gPXE development during GSoC 2008 ===== | ====== Using git for gPXE development during GSoC 2008 ===== | ||
+ | ===== Overview ===== | ||
+ | During GSoC, you will be working with three git repositories: | ||
+ | * The master project repository | ||
+ | |||
+ | * Your local working repository | ||
+ | |||
+ | * Your personal public repository | ||
+ | |||
+ | You will edit code in your local working repository. Every so often (at least once a week, preferably more) you will push changes from your local working repository to your personal public repository. This allows us to see your code. | ||
+ | |||
+ | You will occasionally need to pull changes from the master project repository, in order to keep your local working repository up to date with the main gPXE codebase. | ||
+ | |||
+ | When your code is ready to be merged into the main gPXE codebase, we will pull from your personal public repository. | ||
+ | ===== Setting up your repositories ===== | ||
+ | |||
+ | Start by downloading the source tree as per the instructions on the [[:download|Download]] page: | ||
+ | |||
+ | git-clone git://git.etherboot.org/scm/gpxe.git | ||
+ | |||
+ | This will create your local working repository. | ||
+ | |||
+ | Add a link to your personal public repository: | ||
+ | |||
+ | cd gpxe | ||
+ | git-remote add personal git+ssh://USERNAME@git.etherboot.org//pub/scm/people/USERNAME/gpxe.git | ||
+ | |||
+ | where //USERNAME// is your username on rom.etherboot.org. | ||
+ | |||
+ | Make sure that your personal public repository is up to date: | ||
+ | |||
+ | git-push personal | ||
+ | ===== Example workflow ===== | ||
+ | |||
+ | This example shows you the various stages of creating code and publishing it. | ||
+ | |||
+ | Start by creating a branch to work in: | ||
+ | |||
+ | cd gpxe/src | ||
+ | git-checkout -b mywork origin/master | ||
+ | git-push personal mywork | ||
+ | |||
+ | Edit and commit some files: | ||
+ | |||
+ | emacs drivers/net/mydriver.c | ||
+ | git-commit drivers/net/mydriver.c | ||
+ | |||
+ | Publish your changes: | ||
+ | |||
+ | git-push personal |