Islandora 7.x-1.0 (Beta)
This documentation refers to an earlier version of Islandora. https://wiki.duraspace.org/display/ISLANDORA/Start is current.
The following is one Islandora developer's workflow for dealing with Islandora commits in git.
You may wish to make sure your 6.x/7.x/master branch always tracks the main Islandora repository; they may be a few commits behind (someone committed code in the interim) but it's never different. If you never have commits in your 6.x/7.x/master branches that are not already present in the Islandora repository, you will avoid merge problems and keep from committing code that you don't want to commit.
When you want to create a new feature or fix a bug, create a topic branch like so:
First checkout your master branch.
Then update it so you know you're running the latest code that is available in the public islandora/discoverygarden repository.
The git update is a custom alias created by Nigel Banks. It basically grabs the latest for the current branch from the remote upstream then pushes those changes into the remote origin. In this way your upstream remote is always the public canonical Islandora repository, and your remote origin is your personal repository on Github.
It expands into this:
So now that your master branch has the latest code, you create your topic branch:
Now you do whatever work is required.
If some other issue pops up, you can create another topic branch to deal with it separately. First switch to your master branch:
You can do this with any number of topic branches, and send pull requests for each of them individually, or after working on several separate topic branches you may want to make them into a single branch. This can be done with rebases/merges:
When you're ready with your changes you can push my topic branch to your personal remote, then issue a pull request.
The following example takes a code contribution from a member of the Islandora community and cherry-picks commits into a separate pull request:
You need to find out the commit hashes, so you can look at the user's history:
Author: Rosemary Le Faive
Date: Tue Apr 23 17:37:02 2013 -0400
Insert missing ['#autocomplete_path'] element
Author: Rosemary Le Faive
Date: Tue Apr 23 17:27:15 2013 -0400
Tag elements autocomplete.
With this information you can then cherry-pick the two commits.
Before doing so, create a topic branch (So your local 7.x will still always track against your islandora 7.x)
At this point your topic branch is the same as your 7.x branch which is the same as the islandora/7.x branch.
Now that your topic branch has your two commits, you now push my whole topic branch to my personal Github repository.
You can use the custom alias "remote-branch" which is defined in Nigel's configuration gist below.
Which is equivelent to:
Then go onto Github and trigger issue the pull request.
Free Book on using Git:
A free Pro Git book can be found here: http://git-scm.com/book
Custom Git Aliases:
Also checkout some custom git aliases from Nigel Banks to save you some time: https://gist.github.com/nigelgbanks/5116805