UGS Version Control Discussion

   

Ansgar?: What about using [ext] GNU Arch instead of CVS for version control? It supports decentralisized development and better branching/merging, also from other parties. A lot can be done without network connection, because the working responsitory could be stored local and just a mirror on the net. Also remote responsitories can easily be mirrored to the local disk. (for more information have also a look on the [ext] Arch Wiki)

Fwiffo: Also worth mentioning is [ext] subversion (I don't have a preference, but thought I'd throw it out there).

Ansgar?: Subversion requires either Apache2 with WebDAV and a special Subversion-module or a stand-alone server. We would have to find someone else than SourceForge to host this project... Also Subversion is, like CVS, a centralisized system and supports no disconnected operations.

Rakshasa: Subversion does not require apache nor WebDAV, it includes APR in the source. If you want the archive to be accessible by webpages then you need those. Ofcourse it does have a standalone server (unless you tunnel svn through ssh user accounts, not something i'd recommend), but that is true for other repositories.

Ansgar?: Subversion doesn't require Apache on the client, but it does on the server (or you have to use ths stnd-alone server). In contrast, GNU Arch doesn't require any special server (just any httpd), even for read-write access only sftp is sufficent. Also just access over ssh isn't enough for an Free Software project. The source code should be aviable to anyone.

Rakshasa: You pretty much have to use a server of *some* kind, httpd or stand-alone. What does just have access over ssh? Subversion supports: local r/w to the repository, tunneled through ssh, or a stand-alone server that has it's own set of users. The latter only requires that you have a svn client. Also you can have the repository available through an apache module. So, yes, it's available to anyone. And no, it does not hide anything from freedom loving Free Software people.

Ansgar?: Sorry, maybe I didn't say clear enogh what I mean. On SourceForge it isn't possible to setup a stand-alone server or to install an apache module. Thus only ssh-tunneled access would be possible with Subversion on SourceForge (I hope I got that right :-) So only people with ssh-access to SourceForge could use the responsitory which is a strong point against Subversion.

I having used CVS for years, and recently started using SVN for my own project. I would *strongly* recommend SVN, CVS has too many limitations. Can't move or delete directories without manually editing the repository. Revisions are per file on CVS, while SVN has a global revision. Much easier to copy, move and tag files, and you got ls.

Ansgar?: Arch also avoids many of CVS's pitfalls. It has, like SUbversion, whole-tree commits, renaming files and directories is supported (often mv is enough). But GNU Arch also offers history-sensitive merging (a already merged patch from a branch isn't merged again later) and decentralisized development, neither feature is offerd by Subversion.

Rakshasa: Subversion has similar CLI interface as CVS, this is a hugh advantage. Looking at Arch docs it seems a completely different way of working. There's only one GUI client for Arch vs. many for subversion. You don't have anything like tortoisesvn for arch. And as a bonus, it uses centralisized development. (Yes, that is a good thing for a project this size)

Ansgar?: True, Arch tries to implement another (maybe better) VCS, whereas Subversion only tries to be a better CVS and is much more similar to it. Also I think forcing people to do centralisized development has more disadvantages than advantages. Imagine someone (not in the core team, so no r/w access to source responsitory) wants his own branch to try out something new, but also keep track of changes by other developers. The core team could later pick some parts and merge them back into the main line. This isn't possible with neither CVS nor Subversion, but very easy with Arch.

dnerra: Ansgar, I am very familiar with the problems of CVS, and I also know that while Subversions has fixed some of the most annoying shortcomings, it's not a fundamental step forward. But I really doubt Arch is practical for our purposes:

  • I suspect we will have developers on Windows; "currently (July 2004) Arch is still far away from Subversion's windows support" ([ext] http://wiki.gnuarch.org/moin.cgi/SubVersionAndCvsComparison). Has this changed since?
  • There may well be people wanting to use GUIs. "There are GUIs for Arch, but they are still young." (Same website)
  • Do we really need decentralized development since we will only want to have one server running for now?

Ansgar?: I think decentralisized development is nice for private branches and developers other than the core team. Also it's nice to be able to do commits and checkout offline. I haven't used Arch on Windows or tried the GUIs yet so I can't comment on that. But I don't insist on using Arch, CVS is also fine by me. But I think Subversion maybe isn't the right choice, mainly because it's not supported by SF.

Rakshasa: Subversion supports private branches with "svn merge".


This is a copy of the living page "UGS Version Control Discussion" at Sensei's Library.
(OC) 2005 the Authors, published under the OpenContent License V1.0.
[Welcome to Sensei's Library!]
StartingPoints
ReferenceSection
About