cvs-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Cvs-dev] cvs features for gnu savannah


From: Assaf Gordon
Subject: [Cvs-dev] cvs features for gnu savannah
Date: Wed, 30 Nov 2016 00:24:45 -0500

Hello all,

Thank you for taking the time to reply and to share feedback. Much appreciated.

To give a bit more context CVS usage in gnu savannah:

savannah uses CVS in two ways:
1.
Any hosted project can choose to use CVS to store its source code.
Of course, they are also welcomed to choose git/svn/bzr/hg,
and even choose more than one VCS.
Many older projects started with cvs and either stayed with it or were 
abandoned,
and others kept CVS as historical reference after moving to git/svn/hg/bzr.
Some of our hosted CVS code goes back to 1986 - code is never deleted from 
Savannah.

2.
All hosted projects can store HTML web-pages that will be displayed on
www.nongnu.org or www.gnu.org.
The mechanism for these web-pages is CVS (we use the term 'webcvs' to refer to 
these repositories).
While there are on-going efforts to modernize some of the infrastructure, CVS 
is here to stay for a while in savannah (e.g. all the content in www.gnu.org is 
managed with CVS by multiple people).

---

The problem then becomes: how do we serve many repositories from one xinetd 
daemon (i.e. cvs-pserver).
The accepted method is using:
   cvs --allow-root /path/to/cvs1 --allow-root /path/to/cvs2 pserver
But this was becoming unmanageable.

In 2007, a savannah hacker suggested a new feature to cvs: 
"--allow-root-regexp".
With this feature, we can specify a regular expression that accepts multiple 
"roots".
i.e.:
    cvs --allow-root-regexp '^/srv/cvs/[a-z0-9]+$' pserver

will accept any directory under "/srv/cvs" as a CVSROOT directory, as if we 
specified multiple "--allow-root /srv/cvs/XXX".

The patch was discussed here:
  http://lists.gnu.org/archive/html/bug-cvs/2007-05/msg00019.html
and committed here:
  https://lists.nongnu.org/archive/html/cvs-cvs/2007-05/msg00005.html

Sadly (for us), this was after 1.12.13 was released, and 1.12.14 never happened.

Internally, savannah has been using this version (with "--allow-root-regexp") 
since it's inception, so more than 9 years. It is only now becoming an issue 
since it is the first time in a long while that the savannah VMs are upgraded, 
and we decided to look into the CVS situation.

The latest CVS version of CVS supports this feature, e.g.:
   $ cvs -z3 -d:pserver:address@hidden:/sources/cvs co ccvs
   $ autoreconf -if
   $ ./configure
   $ make
then the resulting binary in "./src/cvs" supports "--allow-root-regexp".

We need this feature for savannah, so we will continue to use it,
But if it was made into an official release it would be much better (IMHO).

I am happy to help with bringing CVS up to date, especially with testing on 
various OSes and configurations, but I'm not the right person to spear-head 
such efforts.

comments welcomed,
- assaf





reply via email to

[Prev in Thread] Current Thread [Next in Thread]