Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-427

Cannot check out alias modules from CVS

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: cvs-plugin
    • Labels:
      None
    • Environment:
      Platform: All, OS: All
    • Similar Issues:

      Description

      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).

        Attachments

          Issue Links

            Activity

            Hide
            bkayser bkayser added a comment -

            Clarified the subject based on the conclusion just to change the label.

            Show
            bkayser bkayser added a comment - Clarified the subject based on the conclusion just to change the label.
            Hide
            bkayser bkayser added a comment -

            I accidentally changed the summary on the wrong bug.

            Show
            bkayser bkayser added a comment - I accidentally changed the summary on the wrong bug.
            Hide
            kohsuke Kohsuke Kawaguchi added a comment -
                • Issue 337 has been marked as a duplicate of this issue. ***
            Show
            kohsuke Kohsuke Kawaguchi added a comment - Issue 337 has been marked as a duplicate of this issue. ***
            Hide
            bkayser bkayser added a comment -

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

            Show
            bkayser bkayser added a comment - There's been no resolution to this. I would recommend implementing option (b) below. It's a small change.
            Hide
            akshay_abd akshay_abd added a comment -

            I've experienced this problem too .
            Voting for this issue .

            Show
            akshay_abd akshay_abd added a comment - I've experienced this problem too . Voting for this issue .
            Hide
            akshay_abd akshay_abd added a comment -

            After trying changes to the source code and playing around its becoming clear
            that this is not a trivial fix =/. Even if the changelog can be computed, its
            difficult to determine if a cvs update can be done, so it falls back to blowing
            away the workspace.

            On top of that even if I comment out the deleting of the workspace the changelog
            is still not computed for some reason.

            On the plus side I've learned a lot about CVS alias modules, how convenient they
            can be to use, but how painful to work with.

            Show
            akshay_abd akshay_abd added a comment - After trying changes to the source code and playing around its becoming clear that this is not a trivial fix =/. Even if the changelog can be computed, its difficult to determine if a cvs update can be done, so it falls back to blowing away the workspace. On top of that even if I comment out the deleting of the workspace the changelog is still not computed for some reason. On the plus side I've learned a lot about CVS alias modules, how convenient they can be to use, but how painful to work with.
            Hide
            kohsuke Kohsuke Kawaguchi added a comment -

            Thanks for trying.

            I think the crux of the issue is that we can't figure out what modules are
            aliased to what, because with aliasing, what Hudson gave to CVS and what CVS
            checks out has no corelation, as far as Hudson can tell.

            I know there are some Java libraries out there that speaks CVS protocol — does
            it tell us how aliases are expanded?

            Or what if we check out /CVSROOT/modules and infer information from there?

            Show
            kohsuke Kohsuke Kawaguchi added a comment - Thanks for trying. I think the crux of the issue is that we can't figure out what modules are aliased to what, because with aliasing, what Hudson gave to CVS and what CVS checks out has no corelation, as far as Hudson can tell. I know there are some Java libraries out there that speaks CVS protocol — does it tell us how aliases are expanded? Or what if we check out /CVSROOT/modules and infer information from there?
            Hide
            akshay_abd 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.

            Show
            akshay_abd 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.
            Hide
            akshay_abd akshay_abd added a comment -

            Adding myself as CC again.

            Show
            akshay_abd akshay_abd added a comment - Adding myself as CC again.
            Hide
            dty 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.

            Show
            dty 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.
            Hide
            ashutoshpunhani 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.

            Show
            ashutoshpunhani 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.
            Hide
            ashutoshpunhani ashutoshpunhani added a comment -

            adding myself as CC

            Show
            ashutoshpunhani ashutoshpunhani added a comment - adding myself as CC
            Hide
            ashutoshpunhani 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.

            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());
            Show
            ashutoshpunhani 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());
            Hide
            kohsuke Kohsuke Kawaguchi added a comment -

            Re-prioritizing.

            Show
            kohsuke Kohsuke Kawaguchi added a comment - Re-prioritizing.
            Hide
            lfbayer lfbayer added a comment -

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

            Show
            lfbayer lfbayer added a comment - Is there a good workaround for this? I would personally like to see this feature work.
            Hide
            scm_issue_link 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:

            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

            Show
            scm_issue_link 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
            Hide
            mc1arke 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.

            Show
            mc1arke 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.

              People

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

                Dates

                Created:
                Updated:
                Resolved: