-
Improvement
-
Resolution: Fixed
-
Major
-
None
-
Platform: All, OS: All
-
Powered by SuggestiMate
Having tried the quiet period in Hudson, I was rather surprised that appears to
be more of a "build delay" than a true VCS quiet period as I would expect from
its name.
The implementation I expect is more like this:
1. wait for VCS change
2. delay for $quiet_period
3. has VCS state changed since last poll?
yes: goto 2
4. build
[JENKINS-1737] Alternative quiet period implementation
If I've understood this request right, it could under bad circumstances lead to
very long delays of the build if people just keep committing stuff into VCS.
If you plan to implement it, you should've at least a maximum number of delays
(or maximum total amount of delay time).
There are already 2 variables available: polling frequency and quiet period. To
prevent delays in building, you could set the quiet period to 0 or near zero.
Code changed in jenkins
User: mc1arke
Path:
pom.xml
src/main/java/hudson/org/apache/tools/ant/taskdefs/AbstractCvsTask.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CvsUser.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RCSFile.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingOutputStream.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/package.html
src/main/java/hudson/scm/CVSChangeLogParser.java
src/main/java/hudson/scm/CVSChangeLogSet.java
src/main/java/hudson/scm/CVSRepositoryBrowser.java
src/main/java/hudson/scm/CVSSCM.java
src/main/java/hudson/scm/CvsChangeLogHelper.java
src/main/java/hudson/scm/CvsChangeSet.java
src/main/java/hudson/scm/CvsFile.java
src/main/java/hudson/scm/CvsModule.java
src/main/java/hudson/scm/CvsModuleLocation.java
src/main/java/hudson/scm/CvsModuleLocationType.java
src/main/java/hudson/scm/CvsRepository.java
src/main/java/hudson/scm/CvsRevisionState.java
src/main/java/hudson/scm/ExcludedRegion.java
src/main/java/hudson/scm/LegacyConvertor.java
src/main/java/hudson/scm/MailAddressResolverImpl.java
src/main/java/hudson/scm/cvstagging/CvsTagAction.java
src/main/java/hudson/scm/cvstagging/CvsTagActionDescriptor.java
src/main/java/hudson/scm/cvstagging/CvsTagActionWorker.java
src/main/java/hudson/scm/cvstagging/LegacyTagAction.java
src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/enterPassword.jelly
src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/versionCheckError.jelly
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_de.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_fr.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_ja.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_nl.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_ru.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_tr.html
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm.jelly
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_de.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_es.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_fr.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ja.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_nl.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_pt_BR.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ru.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_tr.properties
src/main/resources/hudson/scm/CVSSCM/config.jelly
src/main/resources/hudson/scm/CVSSCM/config.properties
src/main/resources/hudson/scm/CVSSCM/global.jelly
src/main/resources/hudson/scm/CVSSCM/help-allModules.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_de.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_fr.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_ja.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_nl.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_ru.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_tr.html
src/main/resources/hudson/scm/CVSSCM/help-branch.html
src/main/resources/hudson/scm/CVSSCM/help-branch_de.html
src/main/resources/hudson/scm/CVSSCM/help-branch_fr.html
src/main/resources/hudson/scm/CVSSCM/help-branch_ja.html
src/main/resources/hudson/scm/CVSSCM/help-branch_nl.html
src/main/resources/hudson/scm/CVSSCM/help-branch_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-branch_ru.html
src/main/resources/hudson/scm/CVSSCM/help-branch_tr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_de.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_fr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_ja.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_nl.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_ru.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_tr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_zh_CN.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_de.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_fr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_ja.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_nl.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_ru.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_tr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_de.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_fr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_ja.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_nl.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_ru.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_tr.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile_de.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile_fr.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile_ja.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile_zh_CN.html
src/main/resources/hudson/scm/CVSSCM/help-disableCvsQuiet.html
src/main/resources/hudson/scm/CVSSCM/help-excludedRegions.html
src/main/resources/hudson/scm/CVSSCM/help-excludedRegions_de.html
src/main/resources/hudson/scm/CVSSCM/help-excludedRegions_fr.html
src/main/resources/hudson/scm/CVSSCM/help-excludedRegions_ja.html
src/main/resources/hudson/scm/CVSSCM/help-pruneEmptyDirectories.html
src/main/resources/hudson/scm/CVSSCM/help-skipChangeLog.html
src/main/resources/hudson/scm/CVSSCM/help-useHeadIfNotFound.html
src/main/resources/hudson/scm/CVSSCM/help-useHeadIfNotFound_de.html
src/main/resources/hudson/scm/CvsModule/config.jelly
src/main/resources/hudson/scm/CvsModule/config.properties
src/main/resources/hudson/scm/CvsModule/config_de.properties
src/main/resources/hudson/scm/CvsModule/config_es.properties
src/main/resources/hudson/scm/CvsModule/config_fr.properties
src/main/resources/hudson/scm/CvsModule/config_ja.properties
src/main/resources/hudson/scm/CvsModule/config_nl.properties
src/main/resources/hudson/scm/CvsModule/config_pt_BR.properties
src/main/resources/hudson/scm/CvsModule/config_ru.properties
src/main/resources/hudson/scm/CvsModule/config_tr.properties
src/main/resources/hudson/scm/CvsModule/help-branchName.html
src/main/resources/hudson/scm/CvsModule/help-localName.html
src/main/resources/hudson/scm/CvsModule/help-remoteName.html
src/main/resources/hudson/scm/CvsModule/help-tagName.html
src/main/resources/hudson/scm/CvsModule/help-useHeadIfNotFound.html
src/main/resources/hudson/scm/CvsModule/help-useHeadIfNotFound_de.html
src/main/resources/hudson/scm/CvsModuleLocation/BranchModuleLocation/config.jelly
src/main/resources/hudson/scm/CvsModuleLocation/HeadModuleLocation/config.jelly
src/main/resources/hudson/scm/CvsModuleLocation/TagModuleLocation/config.jelly
src/main/resources/hudson/scm/CvsRepository/config.jelly
src/main/resources/hudson/scm/CvsRepository/config.properties
src/main/resources/hudson/scm/CvsRepository/config_de.properties
src/main/resources/hudson/scm/CvsRepository/config_es.properties
src/main/resources/hudson/scm/CvsRepository/config_fr.properties
src/main/resources/hudson/scm/CvsRepository/config_ja.properties
src/main/resources/hudson/scm/CvsRepository/config_nl.properties
src/main/resources/hudson/scm/CvsRepository/config_pt_BR.properties
src/main/resources/hudson/scm/CvsRepository/config_ru.properties
src/main/resources/hudson/scm/CvsRepository/config_tr.properties
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_de.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_fr.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_ja.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_nl.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_pt_BR.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_ru.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_tr.html
src/main/resources/hudson/scm/CvsRepository/help-excludedRegions.html
src/main/resources/hudson/scm/CvsRepository/help-excludedRegions_de.html
src/main/resources/hudson/scm/CvsRepository/help-excludedRegions_fr.html
src/main/resources/hudson/scm/CvsRepository/help-excludedRegions_ja.html
src/main/resources/hudson/scm/ExcludedRegion/config.jelly
src/main/resources/hudson/scm/cvs/Messages.properties
src/main/resources/hudson/scm/cvs/Messages_de.properties
src/main/resources/hudson/scm/cvs/Messages_es.properties
src/main/resources/hudson/scm/cvs/Messages_fr.properties
src/main/resources/hudson/scm/cvs/Messages_ja.properties
src/main/resources/hudson/scm/cvs/Messages_nl.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_de.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_fr.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_ja.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_nl.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_pt_BR.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_ru.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_tr.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm.jelly
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_de.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_es.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_fr.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_ja.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_nl.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_pt_BR.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_ru.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_tr.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_de.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_fr.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_ja.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_nl.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_pt_BR.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_ru.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_tr.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm.jelly
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_de.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_es.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_fr.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_ja.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_nl.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_pt_BR.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_ru.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_tr.properties
src/test/java/hudson/scm/CVSSCMTest.java
src/test/java/hudson/scm/CvsChangeLogHelperTest.java
http://jenkins-ci.org/commit/cvs-plugin/1c6ddef1e5c1c3fe9f1a236fe4cc3aa336b8ca21
Log:
Merge pull request #5 from mc1arke/master
Overhaul of the cvs plugin
Changes:
- Allowing checking out modules from different branch/tags in a single repository (
JENKINS-768,JENKINS-6812) - Allowing multiple repositories in a single job i.e. multiple CVS roots (
JENKINS-2638) - Using a Java CVS Library rather than depend on a system library (
JENKINS-49,JENKINS-3848,JENKINS-3756,JENKINS-1676) - Use 'rlog' for polling and change-log generation and 'rtag' for tagging (
JENKINS-6312,JENKINS-10981,JENKINS-11787,JENKINS-1847,JENKINS-1359,JENKINS-76,JENKINS-9809,JENKINS-2710,JENKINS-5744,JENKINS-4604) - Restrict CVS to only check-out configured modules and not other CVS items in the workspace (
JENKINS-7449,JENKINS-2345,JENKINS-4489,JENKINS-1638,JENKINS-528) - Add check-box to allow disabling change-log generation per project (
JENKINS-3979) - Leave CVS/Entries contents in their original encoding (
JENKINS-4241,JENKINS-2614) - Making CVS Prune (-p parameter) optional through job configuration (
JENKINS-1013) - Improving warnings and validation (
JENKINS-9670,JENKINS-9045,JENKINS-7407,JENKINS-3133) - Fixing cyclic dependency with subversion plugin in POM (
JENKINS-10370) - Fixing 'after-the-fact' tagging of builds (
JENKINS-8128) - Improved date format on CVS commands (
JENKINS-6119,JENKINS-7833) - Allowing macro/parameter expansion on input fields (
JENKINS-2318,JENKINS-3821) - Fixing missing CVS change log entries when 'use head if not found' is used (
JENKINS-12104)
Potentially also fixes:
JENKINS-1737: Alternative Quiet Period Implementation (untested - updated polling should fix this)
JENKINS-10843: CVS Update (defect is unclear)
JENKINS-427: Cannot check out alias modules from CVS (untested - using rlog should fix this)
It's probably worth updating the version number in the POM to 2.0 given the number/scale of these changes, although this hasn't been included as part of this request.
Compare: https://github.com/jenkinsci/cvs-plugin/compare/7b57474...1c6ddef
Cvs plugin has now been updated (as of version 2.0) to use the updated SCM polling mechanism which should fix this issue. Please re-open the issue if it does not match your expectation with details of what differs from what you expect.
How about step #2 be implemented as :
delay for $quiet_period - ($time_now - $time_since_last_vcs_change)
This way the build doesn't have to wait a full quiet period if the vcs change
occurred at the beginning of the SCM poll interval.