On 31 Oct 2005 18:26:00 -0800, address@hidden <address@hidden> wrote:
Hi,
Is there a way to do the following:
At release_1_0, three users check out the source codes, and make
changes on them. They all checked in their changes. Is there a easy way
to find who has changed what after some time later?
We currently first:
Create Branch and Check-in:
$ cvs tag -b SCRxxx_add_new_feature
file1.c file2.c
$ cvs commit -m"add new feature because of buyer request" \
-r SCRxxx_add_new_feature file1.c file2.c
then at code release time (maybe every two weeks):
a special person will merger these branch changes into the trunk.
We do this is because we need to track the changes related to a special
problem (SCR). But the branch change merge is not a easy job. If there
are 100 branch changes, you need to merge 100 times.
Is there a easy way to track the changes?
If you mean "Is there an easy way to track the changes without
branching and merging?", then yes. It may not fit your
requirements but you can try this:
- check out code
- apply tag SCRxxx_add_new_feature_BEFORE_CHANGE to unmodified code
- modify code
- check in changes
- apply tag SCRxxx_add_new_feature_AFTER_CHANGES to moified code
(basically it is the same as your method without the branch)
This may be adaquate for tracking small changes (like minor
fixes). Large changes (like adding features) should probably be
done via the branch-merge method. You'll have to judge the
'danger level' of each change and pick the method accordingly. Oh
and if you do do a branch and merge, remember to apply a tag to the
destination branch both before and after the merge.
Also, you should note that cvs tracks all changes. The only
reason for the tags is so that it is easy to select a set of
changes. So in your case, you can enter the tag names in your SCR
(problem report) logs so you can easily reference them later.
There are several ways to view the history. cvs history, cvs log, cvs
annotate, cvs diff. They all give you different
information. They can display information about changes to a file
or files that can be limited to a range. To limit the 'view' to
your changes with regards to each SCR or problem report is easy if you
have the BEFORE and AFTER tags.
cvs history -r BEFORE -r AFTER
cvs log -r BEFORE -r AFTER
cvs diff -r BEFORE -r AFTER
cvs annotate -rAFTER (this will show who did what on a line per line basis)
Sorry. I do tend to go on and on sometimes.
Hope this helps.
--Russ
Thanks!
Yong
_______________________________________________
Info-cvs mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/info-cvs