contribution use case
Merging a patch from antoviaque repository defined a use case applicable to contributors.
- antoviaque clones http://cardstori.es/cardstories.git on gitorious
- antoviaque creates a branch on which he commits a change.
- loic git clone ssh://firstname.lastname@example.org/var/www/cardstories.git
- loic git fetch git://gitorious.org/~antoviaque/cardstories/antoviaques-cardstories.git fbintegration to retreive the changeset
- loic git cherry-pick 01535055f0d4f6d7f044774d1668ce7f7d599e56 the changeset
- loic git push ssh://email@example.com/var/www/cardstories.git
- antoviaque wants to synchronize with the latest changes from http://cardstori.es/cardstories.git (which is the public name of ssh://firstname.lastname@example.org/var/www/cardstories.git) and git pull http://cardstori.es/cardstories.git master from within a git checkout fbintegration in the working directory of the git clone git://gitorious.org/~antoviaque/cardstories/antoviaques-cardstories.git repository.
- antoviaque checks the result of the pull (which is fetch + merge) and git push git://gitorious.org/~antoviaque/cardstories/antoviaques-cardstories.git them. The commit now has a different hash and is therefore a duplicate in the branch. However, the most recent commit hash is now shared between antoviaque branch and loic branch : there will be no further duplicate.
This is the easiest use case but it also creates numerous merges in one of the branches. To avoid this it is recommended that contributors agree on a branch name that is considered ready to be merged and only contain clean changesets. The master branch could be such a branch.
adding lincoln as a permanent contributor
lincoln is going to contribute on cardstori.es on a regular basis. The location of his repository is added to the list of known remotes, from within a git clone ssh://email@example.com/var/www/cardstories.git :
git remote add lincoln http://git.comum.org/lincoln/cardstories.git
His first contribution is on add automatic apache configuration which has been reviewed to be ready for a merge.
$ git log ..lincoln/debian commit fee1870d87e8aacff36d39518e4ab39d57d4d216 Author: Lincoln de Sousa
Date: Sun May 1 19:45:43 2011 -0300 Adding a default configuration for apache2 to Debian the pkg (Closes: #9)
And it is merged and pushed :
git pull lincoln debian git push ssh://firstname.lastname@example.org/var/www/cardstories.git
It can be browsed from cardstori.es