• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • cvs-plugin
    • None
    • Platform: All, OS: All

      If you use alias modules in CVS the CVS support in hudson will not work. I
      think this is an easy fix though--I'll suggest a couple of simple options below.

      Under these conditions:

      1. in CVSROOT/modules have an entry like

      WebApp -a components/app components/web

      (This is a module definition for 'WebApp' which is basically an alias for the
      two modules components/app and components/web. You can use it anywhere you
      would normally list those modules separately. It's a common mechanism for
      assemblies.)

      2. Update mode set to true or false--doesn't matter.

      3. Legacy mode set to true (so that 'components' path element appears and is not
      truncated just because it's got no repository files in it directly)

      The code gets checked out okay but hudson falls over calculating changes because
      it does a cvs log on "WebApp" but that's never going to work because there is no
      directory called WebApp. So here's the error in the console:

      $ computing changelog
      cvs log: cannot open CVS/Entries for reading: No such file or directory
      cvs [log aborted]: no repository

      ERROR: cvs exited with error code 1
      Command line was [Executing 'cvs' with arguments:
      '-d:pserver:anonymous@oliver:/usr/local/repository/maintree'
      'log'
      '-d'
      '>=2007-04-04'
      'WebApp'

      This is related to another problem: If I use an alias module then I have to use
      legacy mode or I'll get a rather strange error because there's a mismatch
      between the module I'm checking out and the directory I'm creating. The error
      looks like this:

      cvs checkout: existing repository /usr/local/repository/maintree/components/app
      does not match /usr/local/repository/maintree/components/web
      cvs checkout: ignoring module componets/web

      It turns out both problems go away if I change the checkout of the code to use
      the -N option, like this:

      cvs co -Nd WebApp WebApp

      This forces directory WebApp to get created with one subdirectory, components.

      Now when you do the log on the 'WebApp' directory it will succeed.

      Other options:

      a) Since -N means don't shorten the path, maybe you don't want to change that
      behavior. So instead you could change the 'legacy' mode so that it uses -Nd
      instead of completely omitting -d. You get the full path checked out, but you
      also get a new directory component 'WebApp'. It may not be ideal but I suspect
      it's pretty much what you are trying to accomplish anyway...?

      b) Keep checkout and legacy mode as they are, but change your log command. You
      will get the same result whether or not you specify the cvs module in the log
      command. I did an experiment. If you omit the module from the log command, it
      runs on the code you have checked out anyway, and nothing more. So it's the
      same result, but in the case where the module is WebApp and there is no WebApp
      directory, it will still work (apparently).

          [JENKINS-427] Cannot check out alias modules from CVS

          akshay_abd added a comment -

          Yeah I was thinking along the same lines - seeing if we can get the info from
          CVSROOT/modules. I saw the format and got lazy - I really dont want to parse it
          and all - thats kinda overkill - the amount of work to do. Also its not that
          simple - theres a lot more logic involved even after the parsing since you can
          have rules for getting flat directories - and that definition can keep changing.

          But I didnt think about searching for a Java lib that already implements that
          ! I'll hunt around - if it can at least get module definitions thats a lot.

          akshay_abd added a comment - Yeah I was thinking along the same lines - seeing if we can get the info from CVSROOT/modules. I saw the format and got lazy - I really dont want to parse it and all - thats kinda overkill - the amount of work to do. Also its not that simple - theres a lot more logic involved even after the parsing since you can have rules for getting flat directories - and that definition can keep changing. But I didnt think about searching for a Java lib that already implements that ! I'll hunt around - if it can at least get module definitions thats a lot.

          akshay_abd added a comment -

          Adding myself as CC again.

          akshay_abd added a comment - Adding myself as CC again.

          Dean Yu added a comment -

          Would it be sufficient to use the local directory names found in the workspace
          directory instead of the CVS module names?

          To partially answer my own question, this wouldn't work well with a custom
          workspace directory where multiple projects perform checkouts into. You'd wind
          up with changes for all the directories, not just the ones specific to one project.

          Dean Yu added a comment - Would it be sufficient to use the local directory names found in the workspace directory instead of the CVS module names? To partially answer my own question, this wouldn't work well with a custom workspace directory where multiple projects perform checkouts into. You'd wind up with changes for all the directories, not just the ones specific to one project.

          [dty] Would it be sufficient to use the local directory names found in the
          workspace directory instead of the CVS module names?

          I second that solution. I think it will work. I was getting following in
          "Console Output".

          cvs log: cannot open CVS/Entries for reading: No such file or directory

          I reran the CVS command for "computing changelog" in
          $HOME/.hudson/jobs/<jobName>/workspace by changing last argument from
          "<jobName>" to "buildscripts jars src" i.e. folders in
          $HOME/.hudson/jobs/<jobName>/workspace and it executed with return code 0.

          [dty] To partially answer my own question, this wouldn't work well with a custom
          workspace directory where multiple projects perform checkouts into. You'd wind
          up with changes for all the directories, not just the ones specific to one project.

          I think this is fine. If a code is at one location and serves multiple projects,
          all project should show changes in that location.

          ashutoshpunhani added a comment - [dty] Would it be sufficient to use the local directory names found in the workspace directory instead of the CVS module names? I second that solution. I think it will work. I was getting following in "Console Output". cvs log: cannot open CVS/Entries for reading: No such file or directory I reran the CVS command for "computing changelog" in $HOME/.hudson/jobs/<jobName>/workspace by changing last argument from "<jobName>" to "buildscripts jars src" i.e. folders in $HOME/.hudson/jobs/<jobName>/workspace and it executed with return code 0. [dty] To partially answer my own question, this wouldn't work well with a custom workspace directory where multiple projects perform checkouts into. You'd wind up with changes for all the directories, not just the ones specific to one project. I think this is fine. If a code is at one location and serves multiple projects, all project should show changes in that location.

          adding myself as CC

          ashutoshpunhani added a comment - adding myself as CC

          [description] a) Since -N means don't shorten the path, maybe you don't want to
          change that behavior. So instead you could change the 'legacy' mode so that it
          uses -Nd instead of completely omitting -d. You get the full path checked out,
          but you also get a new directory component 'WebApp'. It may not be ideal but I
          suspect it's pretty much what you are trying to accomplish anyway...?

          [bkayser] There's been no resolution to this. I would recommend implementing
          option (b) below. It's a small change.

          I found a) easier to do. I did following change to CVSSVN.java and copied to
          WEB-INF/classes. Things are looking good. I'll get back if I face something
          else.

          1. add "-N -d workspace" in legacy mode
          2. (Note: non-legacy mode adds "-d workspace")
            414a415,416
            > else
            > cmd.add("-N", "-d", dir.getName());
          1. cvs co should be executed from workspace/.. in legacy mode
          2. (just like non-legacy mode)
            418c420
            < if(!run(launcher,cmd,listener, flatten ? dir.getParent() : dir))

            > if(!run(launcher,cmd,listener,dir.getParent()))
          1. don't add module name at the end of cvs log command
          2. (just like non-legacy mode)
            883,886d884
            < } else {
            < // fallback
            < if(!flatten)
            < task.setPackage(getAllModulesNormalized());

          ashutoshpunhani added a comment - [description] a) Since -N means don't shorten the path, maybe you don't want to change that behavior. So instead you could change the 'legacy' mode so that it uses -Nd instead of completely omitting -d. You get the full path checked out, but you also get a new directory component 'WebApp'. It may not be ideal but I suspect it's pretty much what you are trying to accomplish anyway...? [bkayser] There's been no resolution to this. I would recommend implementing option (b) below. It's a small change. I found a) easier to do. I did following change to CVSSVN.java and copied to WEB-INF/classes. Things are looking good. I'll get back if I face something else. add "-N -d workspace" in legacy mode (Note: non-legacy mode adds "-d workspace") 414a415,416 > else > cmd.add("-N", "-d", dir.getName()); cvs co should be executed from workspace/.. in legacy mode (just like non-legacy mode) 418c420 < if(!run(launcher,cmd,listener, flatten ? dir.getParent() : dir)) — > if(!run(launcher,cmd,listener,dir.getParent())) don't add module name at the end of cvs log command (just like non-legacy mode) 883,886d884 < } else { < // fallback < if(!flatten) < task.setPackage(getAllModulesNormalized());

          Re-prioritizing.

          Kohsuke Kawaguchi added a comment - Re-prioritizing.

          lfbayer added a comment -

          Is there a good workaround for this? I would personally like to see this feature work.

          lfbayer added a comment - Is there a good workaround for this? I would personally like to see this feature work.

          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:

          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

          SCM/JIRA link daemon added a comment - 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 version 2.0 uses remote commands (rlog and rtag) for repository work so does not requires working on entries files. The repository will automatically resolve aliases during rlog fixing this issue.

          Michael Clarke added a comment - cvs plugin version 2.0 uses remote commands (rlog and rtag) for repository work so does not requires working on entries files. The repository will automatically resolve aliases during rlog fixing this issue.

            manmohan manmohan negi
            bkayser bkayser
            Votes:
            5 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: