This is an old revision of the document!
Request for Comments: Move PHP's source code and docs to something that isn't CVS
- Version: 0.0.1
- Date: 2008-03-29
- Author: Gwynne Raskind
- Status: In the works
- Votes: (+0/-0)
- Pro:
- Contra:
Purpose
The idea is to get PHP away from CVS, which while a venerable and respected version control system, is just too old to serve our needs any longer. Several different newer systems have been proposed, notably Subversion, Git and Mercurial.
Subversion
Some comments on SVN, partially from http://wiki.pooteeweet.org/PHPSVN/ and edited for clarity:
Reasons for SVN:
- Client-side diffs (faster, offline, less server strain)
- Serving via apache2 makes all sorts of things possible (better karma management)
- SVN correctly handles binary types and all newline styles
- Directories, renames, etc. are all versioned.
- Ability to use SVK (star merges, and more)
- Ability to do external includes (e.g. pear stuff into pecl/pearweb)
Reasons against SVN:
Larger checkout size- An inevitability anyway as the code base growsSVN tools not available in all distros by default- This is no longer true in modern systems, and it is easily installed on those which don't come with it- $Id$ equivalent does not generate consequtive numbering per file
Developers will need to learn to do some things differently- SVN's interface is very similar to CVS's.is svn as flexible with encoding as CVS?- SVN is in fact considerably moresoSVN doesn't have real tags
On the subject of SVN tags, php [AT] adamashley [DOT] name says:
SVN doesn't have real tagsthank god. how many times have you created a tag and need to come back and turn it into a branch? the under lying system should place limitations upon how you use it, those limitations should only be agreed upon and implemented by the people using the system.
Git
Insert stuff here Question: How official is the win32 support of git at the moment? http://code.google.com/p/msysgit/ says it is currently merged into official distribution.
Requirements
Could we summarize what is wrong with the current system, to have some criterias to be able to choose a suitable system?
For example:
- Development Systems to be supported: Linux?, Windows?, Solaris?,...
- Support for advanced karma management
- ...
Further Discussion And Reading
http://doc.php.net/php/rfc/rfc-proposal-show.php?id=8
http://del.icio.us/sebastian_bergmann/scm
http://blogs.gnome.org/newren/2007/11/17/adoption-of-various-vcses/
http://www.javaworld.com/javaworld/jw-09-2007/jw-09-versioncontrol.html Maybe not the best article but a starting point, compares CVS, Subversion, Bazaar, Mercurial
http://www.infoq.com/articles/dvcs-guide DVCS Overview with comparison of Git, Hg, and Bzr
http://bazaar-vcs.org/BzrVsGit Bazaar vs GIT (from the Bazaar Point of View)
http://tomayko.com/writings/the-thing-about-git Shows how git solves the “The Tangled Working Copy Problem”, with nice examples and a discussion/reference to other VCSes as well
http://weblogs.mozillazine.org/preed/2007/04/version_control_system_shootou_1.html Why mozilla chose mercurial
http://groups.google.com/group/mozilla.dev.planning/browse_thread/thread/7532d66890f63768 Mozilla people discussing mercurial and git and others
http://texagon.blogspot.com/2008/02/use-mercurial-you-git.html Another Mercurial vs. GIT