-
Bug
-
Resolution: Unresolved
-
Minor
-
None
Is running 'rlog' after 'cvs up -r TAG' ok? Don't think so
If you are selecting 'Location' as Tag e.g.
Location : Tag
Tag Name : DEV
cvs commands run by Jenkins will be something like
cvs update -d -r DEV blah_module
cvs rlog -S -d'19 Nov 2012 11:43:30 +1100<19 Nov 2012 11:47:37 +1100' blah_module
What if the tag DEV on component/module has not moved but several versions are committed to cvs?
In this case what's happening is your workspace is not changed & still has got the old components with 'DEV' tag revisions however change log will show the committed changes 'cos of rlog.
I'll try to explain
1. Notice foo.bar 'DEV' tag is not at head
cvs log srcmgr/test/someDir/foo.bar | egrep 'head:|DEV:'
head: 1.15
DEV: 1.5
2. I committed a change
cvs commit -m 'test' srcmgr/test/someDir/foo.bar
Checking in srcmgr/test/someDir/foo.bar;
/cvs/srcmgr/test/someDir/foo.bar,v <-- foo.bar
new revision: 1.16; previous revision: 1.15
3. Notice that even though I have committed a change but my tag 'DEV' is not moved at all
cvs log srcmgr/test/someDir/foo.bar | egrep 'head:|DEV:'
head: 1.16
DEV: 1.5
4. Now my Jenkins settings is 'Location: tag', 'tag: DEV' & 'Update: ticked'
Run Jenkins
Building in workspace /export/home/amittal/temp
cvs update -d -P -r DEV srcmgr
cvs update: Updating srcmgr
cvs update: Updating srcmgr/adhoc
cvs update: Updating srcmgr/cm
cvs update: Updating srcmgr/cm/bin
cvs update: Updating srcmgr/logs
cvs update: Updating srcmgr/test
cvs update: Updating srcmgr/test/createSomeLongPathDirAveryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVerylongpathDirectory
cvs update: Updating srcmgr/test/someDir
cvs rlog -S -d19 Nov 2012 15:42:34 +1100<19 Nov 2012 15:51:08 +1100 srcmgr
cvs rlog: Logging srcmgr
cvs rlog: Logging srcmgr/adhoc
cvs rlog: Logging srcmgr/cm
cvs rlog: Logging srcmgr/cm/bin
cvs rlog: Logging srcmgr/logs
cvs rlog: Logging srcmgr/test
cvs rlog: Logging srcmgr/test/createSomeLongPathDirAveryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVerylongpathDirectory
cvs rlog: Logging srcmgr/test/someDir
[temp] $ /bin/sh -xe /var/tmp/hudson5023473001197182858.sh
+ pwd
/export/home/amittal/temp
Notifying upstream projects of job completion
Finished: SUCCESS
5. Jenkins displayed the committed change in the change log
Changes
Summary
test
amittal:
test
1.16 srcmgr/test/someDir/foo.bar
cat changelog.xml
<?xml version="1.0" encoding="UTF-8"?>
<changelog>
<entry>
<changeDate>2012-11-19 04:49:26</changeDate>
<author><![CDATA[amittal]]></author>
<file>
<name><![CDATA[srcmgr/test/someDir/foo.bar]]></name>
<fullName><![CDATA[/cvs/srcmgr/test/someDir/foo.bar]]></fullName>
<revision>1.16</revision>
</file>
<msg><![CDATA[test]]></msg>
</entry>
</changelog>
6. Now this is the problem what's happening here is since we are running 'cvs up -r DEV' and the tag DEV is not moved my workspace is still at old revision, no update (in this case 1.5)
cvs log srcmgr/test/someDir/foo.bar | egrep 'head:|DEV:'
head: 1.16
DEV: 1.5
However since we are running 'rlog' and a commit happened it shows that in change log whereas in my workspace there is no change to build. Therefore I think if we are running 'cvs up/co' with '-r TAG' option, running 'rlog' after that to determine change log for workspace is superfluous/not correct. As change log in this case should be determined by the TAG move not by commits.
- is related to
-
JENKINS-31994 CVS rlog should only be done if module has changed
- Open