As far as I know, there are at least three various patches to allow
specifying the portnumber in remote repository path.  Unfortunately,
none of them made their way into main CVS distribution.

While working on

        http://alexm.here.ru/cvs-nserver/

and while reading the \"ubercool "Mastering Regular Expressions" book
I have made my own hack for portnumbers.  The patch is available at

  http://alexm.here.ru/cvs-nserver/download/hacks/cvs-1.10.8-portnumbers.patch

It uses regular expressions and thus is a) cleaner; b) more flexible;
c) slightly less in size while more functional.

The new format is extremely intuitive, which is not the case for at
least one other patch I've seen.  Just use something like

        $ cvs -d :pserver:[EMAIL PROTECTED]:24000:/repos login

The same works (should work) for :kserver: and :gserver:

The only thing that is supported rather flakely is :ext: and :server:
methods.  a) the feature

        /* If the method isn't specified, assume
           SERVER_METHOD/EXT_METHOD if the string contains a colon or
           LOCAL_METHOD otherwise.  */

is not supported.  Seems like it would be trivial to implement, but I
absolutely do not have a possibility to test this.  Anyway, you could
always explicitly specify the `:ext:' method.  b) I am not sure if
:ext: method will survive specifying the alternate port number given
it calls external utility.  Comments?

The patch changes four files:

        [cvs.texinfo], documenting it; 

        [cvs.h], new global (sigh...) variable; 

        [client.c], use this variable where appropriate;

        [root.c], completely replace the parse_cvsroot() function.

I would be glad if the possibility to merge this patch into the main
distribution would be considered by DEVEL team.  And while this is not
the case, this functionality, and many things else, will be available
in cvs-nserver, http://alexm.here.ru/cvs-nserver/ (the version with
this patch is probably not online yet).

--alexm

Reply via email to