Tous  Arabic Brazilian Portuguese Bulgarian Chinese (Simplified) Chinese (Hong Kong Cantonese) Chinese (Traditional) Czech Danish Dutch Finnish French German Greek Hebrew Hungarian Italian Japanese Korean Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swedish Turkish English

Proposal for Migrate phpdoc/ to SVN

» Metadata » Status
  • Category: RFC
  • Proposer: anatoly techtonik
  • Status: Proposed
» Description

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.

» Links »Files
» Timeline » Changelog
  • First Draft: 2007-03-17
  • Proposal: 2007-03-18
  • anatoly techtonik
    [2008-05-24 09:44 UTC]

    Add long term goals of conversion and the purpose of voting process.
  • anatoly techtonik
    [2007-07-08 16:40 UTC]

    Add links to Forrester research about Subversion if above list is not enough.
  • anatoly techtonik
    [2007-03-25 20:25 UTC]

    Added notice about complicated checkout procedure for getting fresh files from VCS.