info-cvs
[Top][All Lists]
Advanced

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

Re: How to get log messages *after* one tag up to another tag


From: Jim Doyle
Subject: Re: How to get log messages *after* one tag up to another tag
Date: 05 Feb 2002 23:00:58 -0500

>> Now, I need a list of all changes made after rel_5_0_1 up to the
>> rel_5_0_2  tag, i.e. all changes added in release 5.0.2.
>
> If you get the current development release of CVS from www.cvshome.org
> you can do that with:
>
> cvs log -r rel_5_0_1::rel_5_0_2

I started using the current development release of CVS to get the
revision range log feature mentioned above, and I've been very happy
with how it works on the trunk of a simple example, but I've run into a
stumbling block when applying it to a repository with a branch.  
It looks as though the revision range can't run from the trunk to a
branch off the trunk.  Let's say rel_5_0_1 tags revision 1.3 on the
trunk, and rel_5_0_2 tags revision 1.3.2.1 - in this case, CVS complains
about the range -rrel_5_0_1::rel_5_0_2 and selects no revisions.  

Is there a chance the cvs log features recently added can be further
extended to work across branches?  To a user, I think 1.3, 1.3.2.1,
1.3.2.2, ... looks like a legal sequence that cvs log should be able to
follow.  Would it make sense to allow ranges A::B, where A precedes B on
the same branch, *or* A::B' is itself a legal range, where B' is the
origin of the branch B is on?  Then the code could walk backwards from
B, jumping to the branch origin of B while A has fewer "numdots" than
B.  Does this make sense when coming at it from the point of view of
implementing CVS?

I think this is a really common and simple case that people will run
into again and again when reporting log messages.  It's pretty common to
release a version of your product and create a branch to handle bugfixes
to that version, and if you want ChangeLogs for the changes between
bugfix releases on that branch, you're going to need cvs log
-rtag1::tag2 to work from the trunk to the branch.  This makes sense to
me; does it make sense to other CVS users?

Here's a more detailed example of the desired behavior at work:

1. Start with a module, "examples", with two files, "bar.java" and
"foo.java", at revisions 1.1 and 1.2, respectively.

2. Tag with "release_1_0".

3. Create branch tag "release_1_0_bugfixes" from regular tag
"release_1_0".

4. Checkout branch.

5. Change and commit bar.java to create branch revision 1.1.2.1.

6. Tag branch with "release_1_0_bugfix1".

7. Change and commit foo.java to create branch revision 1.2.2.1.

8. Tag branch with "release_1_0_bugfix2".

9. Try to get log messages for revisions between release_1_0 and
release_1_0_bugfix1: "cvs log -rrelease_1_0::release_1_0_bugfix1".  The
user needs the log message for revision 1.1.2.1 of bar.java.  But no
revisions are selected: "cvs log: invalid branch or revision pair
release_1_0:release_1_0_bugfix1 in
`/home/jim/repository/examples/bar.java,v'".

10. Try to get log messages for revisions between release_1_0_bugfix1
and release_bugfix2: "cvs log
-rrelease_1_0_bugfix1::release_1_0_bugfix2".  The user needs the log
message for revision 1.2.2.1 of foo.java.  But no revisions are
selected: "cvs log: invalid branch or revision pair
release_1_0_bugfix1:release_1_0_bugfix2 in
`/home/jim/repository/examples/foo.java,v'".

I really appreciate any comments.  I'd like to know if this feature
might get implemented in CVS, or if I should bother working on a patch
myself, or if I need to just create some workaround outside of CVS.

Thanks,
Jim Doyle
address@hidden





reply via email to

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