bug-cvs
[Top][All Lists]
Advanced

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

Re: Feature request: directory attachments


From: Mark D. Baushke
Subject: Re: Feature request: directory attachments
Date: Mon, 03 May 2004 00:13:32 -0700

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Steve Soule <Steve.Soule@vexcel.com> writes:

> I would like a feature added to cvs that lets you specify that a
> module is attached as a subdirectory of a directory. This feature
> would mostly make the modules file unnecessary.

The fact that the modules file is not able to be versioned is indeed a
problem. That it potentially introduces issues during cvs update is also
sometimes a problem.

That said, I am not sure that all of the odd variations are handled by
your suggested change. For example, does the currently committed version
of the .cvsattachments file control things or does the modified, but not
yet committed version of the file? I suspect the former as
implementation of the latter would be difficult and possible lead to
unintended consequences. Also, there is the issue of control. Right now
the modules file is under the control of folks able to commit changes
into the CVSROOT/modules file rather than distributed throughout the
repository. Yes, this control could be handled using special cases in
the commitinfo step, but it may be desirable to implement some kind of a
CVSROOT/config option to deal with this change in central permissions on
structure of the sources.

That said, if you have any patches for this new feature it would be
considered for incorporation into the features branch...

Regarding your question as to a cvs url syntax... the question has been
asked before.

  
http://www.faqchest.com/prgm/cvs-l/cvs-99/cvs-9906/cvs-990605/cvs99061712_19071.html

However, to the best of my understanding, no official syntax has as yet
been adopted.

Robert Fitzsimons wrote around 1999-06-17:

| for a basic description for this cvs url syntax, have a look
| at <URL:http://www.it.kth.se/docs/rfc/rfcs/rfc1738.txt> for more
| information about url syntax.
|
| cvsurl      = "cvs://" login "/" urlpath
| login       = [ user [ ":" password ] "@" ] hostport [ ":" protocol ]
| protocol    = *uchar
| urlpath     = repository identifier [ "?" *searchfield ]
| repository  = "/" path
| identifier  = *idfield | "/" file
| searchfield = field *[ "&" field ]
| idfield     = ";" field
| field       = fieldname [ "=" fieldvalue ]
| file        = *[ path ] filename
| filename    = *uchar
| path        = *uchar *[ "/" *uchar ]
| fieldname   = *uchar
| fieldvalue  = *uchar

This is a fairly reasonable start on a cvs URL syntax.

Since that time, the CVSROOT syntax has grown slightly, so the 'login'
portion of the URL may need some adjustments...

The current syntax of CVSROOT is something like the following:

  
[:<method>[{program}][;<keyword>=<value>...]:][[<user>][:<password>]@]<host>[:[<port>]]/path/to/repository

where method is one of 'pserver', 'ext', 'local', 'fork', 'server',
                       'gserver', 'kserver',
      option is one of 'proxy', 'proxyport', 'ver', 'version', 'passphrase',
                       'privatekey', 'key', 'rsakey'

Note: The CvsNT folks have methods:
  'ntserver', 'sserver', 'sspi', 'ssh', and 'ext{program}'
  where program is some arbitrary text conneciton method command...

which cvshome does not support.

Here are the various CVSROOT formats (combined forms from CvsNT and
cvshome):

    :ext[{program}][;keyword=value...]:[user@]host[:]/path
        keyword={"command"}
    :fork[;keyword=value...]:/path
    :gserver[;keyword=value...]:host[:port][:]/path
    :kserver[;keyword=value...]:host[:port][:]/path
    [:local[;keyword=value...]:]/path
    :ntserver[;keyword=value...]:host[:]/path
    :pserver[;keyword=value...]:[username[:password]@]host[:port][:]/path
    :server[;keyword=value...]:[username[:password]@]host[:]/path
    :sserver[;keyword=value...]:[username[:password]@]host[:port][:]/path
        keyword={"version","ver","strict"}
    :ssh[;keyword=value...]:[username[:password]@]host[:]/path
        keyword="{"version","ver","passphrase","privatekey","key","rsakey"}
    :sspi[;keyword=value...]:[username[:password]@]host[:port][:]/path

Example CVSROOT values

  :pserver;proxy=www.myproxy.net;proxyport=8000:
  :pserver:bach@faun.example.org:2401/usr/local/cvsroot
  :local:c:/src/cvsroot         # c:\src\cvsroot
  :ext:user@somewhere.example.org:/path/to/cvsroot

Above and beyond the path to the CVSROOT, there would also be the need
to encode the module name and filename and potentially such things as
version or branch information.

        Enjoy!
        -- Mark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFAlfEc3x41pRYZE/gRArcpAKDNDgBpG2kJUy4MpxHcLxAm5+4V0ACg1NRf
u2VeHMDUYaLFzhggJxJ+Q4k=
=aLJ6
-----END PGP SIGNATURE-----




reply via email to

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