info-cvs
[Top][All Lists]
Advanced

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

Re: Can the -D option be used on a branch?


From: Mark D. Baushke
Subject: Re: Can the -D option be used on a branch?
Date: Tue, 17 Apr 2001 00:20:03 -0700

> From: Gerhard Sittig <address@hidden>
> Date: Mon, 16 Apr 2001 22:01:05 +0200
> 
> On Mon, Apr 16, 2001 at 13:57 -0400, Larry Jones wrote:
> > 
> > Russ Tremain writes:
> > > 
> > > IMHO, the semantics for -r are confusing.  Sometimes it means
> > > a branch, and sometimes it means an exact revision.
> > 
> > It's even worse for CVS -- exactly the same symbolic tag can be
> > a revision tag in one file and a branch tag in another!

Actually, this is not always a bad thing if you want to ensure that a
particular label may not be modified for some files and that others
are allowed to be updated. As an example, a fixed API description file
that is not allowed to vary during a minor release cycle could be
specified with a version tag while implementations of the API could be
specified with a branch tag.

I don't really like that usage myself, but I have seen people with odd
ideas about how they should control their software development
processes.

> Isn't this the point where one introduces naming conventions for
> tags to *see* what it is instead of having to guess? :>

There are certainly times when it would be useful to use the
old rlog semantics for the -ddates flag

Right now -r <tag> may specify a tag that is a single version or is a
possible sequence of versions. The '-D date_spec' at present resolves
to a particular second in time. 

It might be nice to consider adding an extension to allow the
date_spec to be a list or range of dates. Borrowing somewhat from the
rlog description of the -ddates option:

       -D date_spec

           Select a candidate set of revisions with a checkin
           date/time in the ranges given by the semicolon-separated
           list of date_spec.  A range of the form d1<d2 or d2>d1
           selects the revisions that were deposited between d1 and d2
           exclusive.  A range of the form <d or d> selects all
           revisions earlier than d.  A range of the form d< or >d
           selects all revisions dated later than d.  If < or > is
           followed by = then the ranges are inclusive, not exclusive.
           A range of the form d selects the single, latest revision
           dated d or earlier.  The date/time strings d, d1, and d2
           are in the free format already described for the original
           date_spec.  Quoting is normally necessary, especially for <
           and >.  Note that the separator is a semicolon.

This would let you create a more useful set of intersections between a
static version during a particular interval of time.

Of course, this will give users lots of rope with an increased
possibility to hurt themselves if they are not careful. Using a date
range with a branch tag only makes sense for the end cases where a
file was added to the branch or resurrected from being dead during the
interval otherwise, it would probably need to behave as if the minimum
date was given or generate an error about an ambiguous list of
versions for a particular file...

        Enjoy!
        -- Mark



reply via email to

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