[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
- [Cvs-dev] cvs features for gnu savannah,
Assaf Gordon <=