|
This proposal is to migrate all phpdoc/ activities from CVS to SVN. SVN is much easier to use and understand for new developers at it employs plain file and folder concept in comparison to abstract CVS branches. SVN has bindings for many languages and makes work more effective. SVN makes it possible to build secure web-based systems to read/write repository from web-interface, which is not possible with CVS. The long-standing goal is to integrate patches directly from bug-tracker to SVN.
Some of the facts - feel free to add more.
++++ Accessibility:
CVS needs dedicated port for its custom protocol
SVN works over HTTP and HTTPS via WebDAV
CVS doesn't work behind a proxy
SVN does
CVS checkout is complicated, it is hard to remember all the prerequisites
cvs -d :pserver:cvsread@cvs.php.net:/repository login
cvs -z3 -d :pserver:cvsread@cvs.php.net:/repository checkout -P phpdoc
SVN checkout is only a matter of entering URL
svn co <a href="http://svn.php.net/repository/phpdoc">http://svn.php.net/repository/phpdoc</a>
CVS is complicated to learn for manual maintainers
SVN has a perfect book
CVS is abandoned by developers
SVN is supported by developers and by community
++++ Security:
CVS password is transmitted over network in cleartext with simple rot13-like tranlation
SVN works over HTTPS, supports Apache authentication schemes
++++ Usability:
SVN uses the same set of commands as CVS
CVS has WinCVS GUI - 2,500 downloads/day
SVN has TortoiseSVN - 12,000 downloads/day
CVS fetches previous revision online to build diff of changes
SVN builds diff offline as it keeps previous version separately
CVS needs online repository access to detect status of modified files (correct me if I wrong)
SVN detects changes offline
CVS screws linefeeds
SVN treats all files as binary
CVS leaves empty directories even if deleted
SVN keeps repository tree clean of removed directories
CVS maintains history separately for each file
SVN allows to see modification to a group of files as a whole
CVS doesn't track file movements
SVN history shows directory and file movements
CVS supports rollbacks
CVS rollbacks are never used with phpdoc/
CVS has convenient branches concept
CVS branches are not used in phpdoc/
SVN branched are plain copies of directory trees
CVS has convenient tags concept
SVN tags are plain copies of directory trees
++++ Migration issues:
CVS repository is widely used for read access
Readonly CVS copy can be easily synchronized with SVN with Tailor script <a href="http://darcs.arstecnica.it/tailor/README">http://darcs.arstecnica.it/tailor/README</a>
SVN adoption by Forrester research:
<a href="http://www.collab.net/forrester_wave_report/index.html">http://www.collab.net/forrester_wave_report/index.html</a>
If the voting shows that SVN is desirable, we can start planning the best approach to translate phpdoc/ activities to SVN.
|