[Top][All Lists]
[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