Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Git Migration.

Obsolete:Git Migration: Difference between revisions

From MoodleDocs
(first draft - far from complete.)
 
m (removing categories as page is obsolete)
 
(23 intermediate revisions by 13 users not shown)
Line 1: Line 1:
= Proposal to move Moodle development from CVS to Git =


= Proposal to move Moodle development from CVS to some other revision control system =
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 [http://git.or.cz Git]. A [http://moodle.org/mod/forum/discuss.php?d=99763 discussion] is taking place in moodle.org forums about a possible move to Git and contains a lot of information.


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 [http://git.or.cz Git]. A [http://moodle.org/mod/forum/discuss.php?d=99763 discussion] is taking place in moodle.org forums about a possible move to Git.
Some other systems have also been mentioned, such as [http://www.selenic.com/mercurial/wiki/ Mercurial].


Some other systems have been mentioned, such as [http://www.selenic.com/mercurial/wiki/ Mercurial].
= Git and human usage =


= Moving to Git =
* 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 [http://digilander.libero.it/mcostalba/ qgit] (said to be running flawlessly on Windows) and [http://cola.tuxfamily.org/ 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: [http://code.google.com/p/gitextensions/ Git Extensions] and [http://code.google.com/p/tortoisegit/ TortoiseGit] [[User:Iñaki Arenaza|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 [http://wiki.eclipse.org/EGit/Proposal 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 [http://www.nbgit.org/ NBGit] with some basic support, and Eclipse has [http://www.eclipse.org/egit/ EGit]'''
* [http://vim.sourceforge.net/scripts/script.php?script_id=90 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]]


== Blocker ==
= Git and server-side tool integration =


Jira support: there is a [http://jira.atlassian.com/browse/FE-337 feature request] for support in Jira (unresolved).  This might not be solved by a CVS gateway, as the current software doesn't keep the same version numbers.
* Web interface to the repository: Git provides a web interface. Alternatively, Trac now provides a [http://trac-hacks.org/wiki/GitPlugin GitPlugin] that could be used.
* Bug tracking: see [http://forums.atlassian.com/thread.jspa?threadID=24671&tstart=0] and [http://jira.atlassian.com/browse/FE-337] (support still uncomplete, on June 24 2008).  Martín Langhoff says: "[http://moodle.org/mod/forum/discuss.php?d=99763#p441057 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 "[http://moodle.org/mod/forum/discuss.php?d=99763#p440831 the rev numbers don't line up]" (seems to be fixed, as of late July 2008).
* The module managing [http://moodle.org/cvs moodle.org/cvs] would need to be rewritten to use Git. The user-access control would need to be managed [http://moodle.org/mod/forum/discuss.php?d=99763#p441030 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?


== Problem that might be solved by a CVS gateway ==
= The way to go for developers who want it now =
* The translation team would have problems moving away from CVS, so we must keep a read/write CVS repository for the time being, to give people time to change over;
* public (read-only) mirrors are providing CVS access, used by people to update their site, we can't break this system
* replacement for current integration in tools (git in Eclipse? VCSCommand for vim? TortoiseCVS? Etc.).  VCSCommand supports Git now, but for the others, they're still all works in progress.
* there is a [http://wiki.eclipse.org/EGit/Proposal proposal] to create an Eclipse integration plug-in (unresolved)


== Others ==
It's possible to use Git right now, to track
* Need to see if cvsspam (for the cvs-commits list) would still work
* Follow instructions on the "[[Tracking Moodle CVS with git]]" page
* Moving cvs.moodle.org to git.moodle.org? Or keep both?
* 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


[[Category:Developer]]
= Git tutorials and reference =
[[Category:Developer tools]]
Here is a list of useful tutorials and reference links for Git.
* [http://www.kernel.org/pub/software/scm/git/docs/gitcvs-migration.html gitcvs-migration - git for CVS users]
* [http://git.or.cz/course/svn.html Git - SVN Crash Course]
* [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT With 20 Commands Or So]
* [http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html gittutorial - A tutorial introduction to git]
* [http://www.kernel.org/pub/software/scm/git/docs/user-manual.html Git User's Manual]
* [http://www.kernel.org/pub/software/scm/git/docs/howto-index.html GIT Howto Index]
* [http://www.slideshare.net/err/git-machine Git: The Lean, Mean, Distributed Machine] Interesting presentation discussing various workflows
* [http://progit.org/book/ The book "Pro Git" available online for free]
* [http://book.git-scm.com/ The Git Community book]
* [http://nvie.com/posts/a-successful-git-branching-model/ A successful Git branching model]
 
= Other interesting links =
 
* [http://garrys-brain.blogspot.com/2008/04/git-for-windows-msysgit.html Garry Bodsworth] says some good of the MinGW port of Git (for Windows)
* Installation reports - Git growth amongst DSCMs: [http://tinyurl.com/4uemg2 http://tinyurl.com/4uemg2]
* Usage reports - With a longer timeframe, and counting CVS/SVN: [http://tinyurl.com/4hu2cn http://tinyurl.com/4hu2cn]
* Get a free personal public git repo with some cool tools: [http://github.com/ http://github.com/]
* Free screencasts by Scott Chacon on using Git: [http://gitcasts.com/ http://gitcasts.com/]
* [http://pragprog.com/titles/tsgit/pragmatic-version-control-using-git Pragmatic Version Control using Git] will come out on November 1st, 2008.
* [http://article.gmane.org/gmane.comp.version-control.git/44827 Message from Linus Torvalds, on gmane.comp.version-control.git]
* [http://moodle.org/mod/forum/discuss.php?d=119016 Moodle Development with git]

Latest revision as of 08:24, 23 December 2010

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

The way to go for developers who want it now

It's possible to use Git right now, to track

Git tutorials and reference

Here is a list of useful tutorials and reference links for Git.

Other interesting links