Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Git Migration.
Proposal to move Moodle development from CVS to Git
There have been discussions to abandon CVS as the main version tracking system, to move to a distributed system instead. Many developers have expressed their interest for Git. A discussion is taking place in moodle.org forums about a possible move to Git and contains a lot of information.
Some other systems have also been mentioned, such as Mercurial.
Git and human usage
- A lot of people need an easy interface to the revision system. Most of them are currently using TortoiseCVS (a lot of translators, it seems). There is no tool (as of late June 2008) for Git that is equivalent in ease of use to TortoiseCVS, though qgit (said to be running flawlessly on Windows) and git-cola are improving. In the meantime, people could use a CVS gateway, which would need to work both ways (read & write), to give people time to change over once proper tools become available. Updated: As Martin Langhoff points out (late May 2009), there are two nice Windows GUI projects that are maturing quickly and look impressive: Git Extensions and TortoiseGit Iñaki Arenaza 22:35, 2 June 2009 (UTC)
- Developers using Eclipse, NetBeans, and most other major IDEs need to wait for plugins. There is a proposal, which is aiming to provide a pure-Java implementation along with an Eclipse plugin and should lead to support at least in the Java-based IDEs, but this is still not ready for prime time (June 2008). Updated: Netbeans has NBGit with some basic support, and Eclipse has EGit
- VCSCommand plugin for Vim now supports Git.
- Some users are using CVS mirrors to deploy (and update) their site. Can't break this. A read-only CVS gateway could be a good working solution to this.
- Workflows for the development need to be started - see Development:Git Migration Workflows
Git and server-side tool integration
- Web interface to the repository: Git provides a web interface. Alternatively, Trac now provides a GitPlugin that could be used.
- Bug tracking: see  and  (support still uncomplete, on June 24 2008). Martín Langhoff says: "looks like there is a mercurial plugin we can quickly grab and, ahem, repurpose...". We could also use a CVS gateway, though there could be problems with this workaround, as "the rev numbers don't line up" (seems to be fixed, as of late July 2008).
- The module managing moodle.org/cvs would need to be rewritten to use Git. The user-access control would need to be managed using the pre-received hook.
- Need to see if cvsspam (for the cvs-commits list) would still work
- Moving cvs.moodle.org to git.moodle.org? Or keep both?
The way to go for developers who want it now
It's possible to use Git right now, to track
- Follow instructions on the "Tracking Moodle CVS with git" page
- Try the Development:Tutorial on using git in Moodle development
- Use git-cvsexportcommit to commit to Moodle CVS
- Wait until the next refresh (50min after the hour every hour, New Zealand time) to get the patch back into your local Git repository
Git tutorials and reference
Here is a list of useful tutorials and reference links for Git.
- gitcvs-migration - git for CVS users
- Git - SVN Crash Course
- Everyday GIT With 20 Commands Or So
- gittutorial - A tutorial introduction to git
- Git User's Manual
- GIT Howto Index
- Git: The Lean, Mean, Distributed Machine Interesting presentation discussing various workflows
- The book "Pro Git" available online for free
- The Git Community book
- A successful Git branching model
- Garry Bodsworth says some good of the MinGW port of Git (for Windows)
- Installation reports - Git growth amongst DSCMs: http://tinyurl.com/4uemg2
- Usage reports - With a longer timeframe, and counting CVS/SVN: http://tinyurl.com/4hu2cn
- Get a free personal public git repo with some cool tools: http://github.com/
- Free screencasts by Scott Chacon on using Git: http://gitcasts.com/
- Pragmatic Version Control using Git will come out on November 1st, 2008.
- Message from Linus Torvalds, on gmane.comp.version-control.git
- Moodle Development with git