[geeklog-devel] Upgrade CVS to a distributed repository
Trinity
trinity93 at gmail.com
Tue Apr 15 09:18:45 EDT 2008
In my opinion K.I.S.S (Keep It Simple Stupid) is the way to go. Changeing
over to any other system has severial issues to it.
1. Learning curve: Learning the ins and outs of a new system takes time and
effort. this takes away from working on geeklog
2. End user client support and availability: Are there good reliable clients
for each platform generically used? Is end user support gonna be a
nightmare?
3. Setting up the new system to begin with and maintaining it: Installation,
locating resources, and maintaining the system takes time. Who is gona do
it?
4. Versioning system reliability (bugs in the versioning system): Is the
system reliable, well tested and secure? How do we determine that?
5. What do we really gain from doing this, and what do we loose?
To be honest I some times wish CVS did more, but when i look at other
solutions i see bloat and complicated untested features that only work in
crude command line only fashion with very little or poorly writen
documentation. SVN looks promising as a replacement option due to its
similarity to CVS and uptake by the community at large.
I think this conversation shouldn't be taken further right now. 1.5 needs to
get out into the publics hands first. ;-)
-Trinity
On Mon, Apr 14, 2008 at 9:23 PM, Nick Andrew <nick at nick-andrew.net> wrote:
> I'd like to propose that geeklog moves from the current CVS
> system into a modern, distributed repository like
> Mercurial: http://www.selenic.com/mercurial/wiki/
> or Git: http://git.or.cz/
>
> This suggestion comes from a thread on Groklaw where Ted Powell
> suggests making an improvement to Groklaw's website and would
> happily "send code" but he cannot because Groklaw's installation
> of geeklog is possibly heavily modified; he has no way to know
> if his change against geeklog's published source code is likely
> to work against Groklaw.
>
> Thread:
> http://www.groklaw.net/comment.php?mode=display&sid=20080412215022427&title=PLEASE%20use%20Preview&type=article&order=&hideanonymous=0&pid=689006#c689030
>
> There are probably a large number of people who would contribute
> to the Groklaw site because they support Groklaw, but who
> cannot because the source code is not published.
>
> This problem has been completely solved in the last few years.
> The solution is to use a distributed SCM which allows cross-merging
> of changes. There are several capable systems existing, including
> arch, bzr, darcs, git, mercurial, monotone, and so on. I'd like to
> propose specifically either Git or Mercurial because I believe
> these are the two most popular, functional and stable systems.
>
> Wikipedia has a huge comparison table:
>
> http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
>
> Git is the repository originally written for the Linux kernel; I see
> it as a bit more "technical" whereas Mercurial is a bit more user
> friendly. Both systems are fast and scale well with large numbers of
> managed files and large numbers of developers. There are web
> interfaces and development support tools; it's possible to convert
> a repository between various formats (although I doubt either of
> these systems are going to go away any time soon) and even
> interchange commits between them.
>
> I'll show how this process can work for geeklog. I'll use Mercurial
> as my example because I find it a bit more user friendly than git.
>
> First, geeklog would convert the existing CVS repository to Mercurial
> (also known as Hg for short). Publish the master Hg repository online,
> such as: http://linuxtv.org/hg/v4l-dvb
>
> A developer or user would obtain a local copy of the repository
> by cloning it:
>
> hg clone http://linuxtv.org/hg/v4l-dvb
>
> The developer can work on their local copy, committing as they go
> (commit is a purely local operation) and when they want to submit
> code back to the project they can email a patch to the master
> developer, or if they are a master developer themselves they can
> push changes (using "hg push") to the master repository. Alternately
> any developer can pull ("hg pull") changes from any other
> repository.
>
> These changes don't interfere with local changes because Hg automatically
> makes new branches based on the latest common revision. Branches are
> closed by merging two parent revisions together (Hg implements a
> three-way merge operation). This is the usual way that inputs from
> multiple developers are combined into a master repository.
>
> Meanwhile Groklaw will clone the master repository, make local changes
> (and commit them locally) and sometimes pull from the master repository
> to upgrade (e.g. to the next point-release tag). Groklaw would also
> publish its repository.
>
> Some Groklaw users would clone Groklaw's repository and make commits
> to add functionality to Groklaw. These commits can be sent (emailed or
> pushed) to Groklaw, and from there on to Geeklog to improve the master
> code base, or they can be sent directly to Geeklog.
>
> I believe that moving to a modern distributed SCM can increase the rate
> of development by enabling more developers to contribute and keeping
> the online repositories active with new changes.
>
> Just as an experiment, I have converted the geeklog 2.x CVS tree to
> git and published it:
>
> http://github.com/nickandrew/geeklog-2-x-sample/commits/master
>
> As I'm not familiar with the geeklog codebase I can't check the
> integrity of the conversion, except that I did a 'diff' between the
> latest checked-out CVS and the resulting git repository and the files
> were all the same, with one minor difference. Git and Mercurial do not
> manage empty directories, and geeklog has a handful of them.
>
> In short I think that it will be a benefit to geeklog to convert; the
> effort will be repaid quickly with increased productivity and involvement.
>
> Nick.
> --
> PGP Key ID = 0x418487E7 http://www.nick-andrew.net/
> PGP Key fingerprint = B3ED 6894 8E49 1770 C24A 67E3 6266 6EB9 4184 87E7
> _______________________________________________
> geeklog-devel mailing list
> geeklog-devel at lists.geeklog.net
> http://eight.pairlist.net/mailman/listinfo/geeklog-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist8.pair.net/pipermail/geeklog-devel/attachments/20080415/8e6ad674/attachment.html>
More information about the geeklog-devel
mailing list