Difference between revisions of "Github"
(→GitHub) |
|||
Line 27: | Line 27: | ||
* ww_question_server -- another plugin project connecting moodle question types to the WeBWorK webservice |
* ww_question_server -- another plugin project connecting moodle question types to the WeBWorK webservice |
||
* admintools -- a collection of command line scripts used by larger sites serving WeBWorK |
* admintools -- a collection of command line scripts used by larger sites serving WeBWorK |
||
+ | |||
+ | === Contributing to WeBWorK === |
||
+ | |||
+ | === Workflow === |
||
+ | On your local git repository the following workflow seems to minimize clashes with work being done elsewhere. |
||
+ | |||
+ | * clone the remote repo |
||
+ | |||
+ | *git checkout -b my_new_feature |
||
+ | |||
+ | *..work and commit some stuff |
||
+ | |||
+ | *git rebase master |
||
+ | |||
+ | *..work and commit some stuff |
||
+ | |||
+ | *git rebase master |
||
+ | |||
+ | *..finish the feature |
||
+ | |||
+ | *git checkout master |
||
+ | |||
+ | *git merge my_new_feature |
||
Individual developers for webwork also have their own sites (analogous to the branches in SVN, but more easily accessible) |
Individual developers for webwork also have their own sites (analogous to the branches in SVN, but more easily accessible) |
Revision as of 11:43, 6 March 2012
Warning : | This page is still under construction use with caution |
Contents
GitHub
Overview
Git is the name of a distributed version control system. It plays the role of the CVS or SVN control systems that WeBWorK has used in the past but the details of how it works are somewhat different. For obtaining up-to-date copies of software there is not much difference between git and previous VCS. Developers however should read closely since git has a different conceptualization of how version control should be handled. The difference allows considerably more flexibility for collaborative development. Consolidation no longer depends on a single site or single administrator. Updates are also more modular and therefore easier to check and repair or remove if they cause trouble.
Git has many capabilities and can be used in many different ways. This page outlines a subset of git commands and workflows that seems to work
well for WeBWorK.
Github.com is a site which facilitates the collaborative development of open source projects. These sites are open (read-only) to the world.
WeBWorK has a master site at https://www.github.com/openwebwork where accepted modifications are being consolidated. The following repositories are
available at that site.
- webwork2 -- the course management face of WeBWorK
- pg -- the macros that help render the PG questions
- NationalProblemLibrary -- collection of questions (not yet implemented -- for now Jason Grout's repository at:
- wwmoodle -- plugins that connect moodle and webwork
- ww_question_server -- another plugin project connecting moodle question types to the WeBWorK webservice
- admintools -- a collection of command line scripts used by larger sites serving WeBWorK
Contributing to WeBWorK
Workflow
On your local git repository the following workflow seems to minimize clashes with work being done elsewhere.
- clone the remote repo
- git checkout -b my_new_feature
- ..work and commit some stuff
- git rebase master
- ..work and commit some stuff
- git rebase master
- ..finish the feature
- git checkout master
- git merge my_new_feature
Individual developers for webwork also have their own sites (analogous to the branches in SVN, but more easily accessible)
- Michael Gage: https://www.github.com/mgage
- Jason Aubrey: https://www.github.com/aubreyja
- Arnie Pizer: https://www.github.com/apizer
References for GitHub and Git
- Pro Git book http://progit.org/
(unreviewed at the moment -- YMVV)
- http://gitref.org/ quick reference
- http://help.github.com/send-pull-requests/
- https://github.com/blog/966-improved-subversion-client-support
- Version Control by Example by Eric Sink which is available at http://www.ericsink.com/vcbe/
- see also Git for more references