• Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Critical Critical
    • cvs-plugin
    • None
    • Platform: All, OS: All

      it would an enormous improvement to have hudson be really independent and not
      need cvs or svn clients installed on the host where the web app is deployed but
      have everything work out-of-the-box as a self-contained web app.
      the netbeans team use javacvs (javacvs.netbeans.org/library/) and there's a
      javasvn at tmate.org (tmate.org/svn) but there might be a licensing issue in
      both cases.

      you still might want to have a look into it.

          [JENKINS-49] self-contained cvs client libs

          I agree that it would reduce the number of things that can go wrong.
          Launching processes from Java is certainly not very robust. There's also a few
          things we can do better if Hudson speaks the CVS protocol directly (like
          tagging the workspace post-facto can be done just from a control information.)

          OTOH, there's a prioritization issue. There are a lot of other things that
          could be improved, and Hudson will still have to launch processes
          even if we internalize cvs and svn, people still have to have Java, Ant, and
          Maven installed, etc. Since launching external cvs/svn works good enough for me,

          So I guess I'm not too sure if this is a high priority issue, and as such
          I'm bit hesitant to spend my time on this.

          If there's a particular pain that motivated you to file this bug, I'm very
          interested in learning those and implement additional error checks or diagnosis
          code to ease those pains.

          Or, would you be interested in participating in the development of Hudson ?

          Kohsuke Kawaguchi added a comment - I agree that it would reduce the number of things that can go wrong. Launching processes from Java is certainly not very robust. There's also a few things we can do better if Hudson speaks the CVS protocol directly (like tagging the workspace post-facto can be done just from a control information.) OTOH, there's a prioritization issue. There are a lot of other things that could be improved, and Hudson will still have to launch processes even if we internalize cvs and svn, people still have to have Java, Ant, and Maven installed, etc. Since launching external cvs/svn works good enough for me, So I guess I'm not too sure if this is a high priority issue, and as such I'm bit hesitant to spend my time on this. If there's a particular pain that motivated you to file this bug, I'm very interested in learning those and implement additional error checks or diagnosis code to ease those pains. Or, would you be interested in participating in the development of Hudson ?

          al_xipe added a comment -

          reassigning this one to myself

          al_xipe added a comment - reassigning this one to myself

          http://svnkit.com/ seems to be getting a traction, so perhaps that could be
          something worth considering.

          Kohsuke Kawaguchi added a comment - http://svnkit.com/ seems to be getting a traction, so perhaps that could be something worth considering.

          Starting 1.74, Hudson uses svnkit. So the only remaining work for this is CVS
          (if we ever decide to do it.)

          Kohsuke Kawaguchi added a comment - Starting 1.74, Hudson uses svnkit. So the only remaining work for this is CVS (if we ever decide to do it.)

          al_xipe added a comment -

          this is great news kohsuke.
          I've deployed the 1.74 snapshot but I get an exception when hudson attempts to
          retrieve the bits...

          type Exception report

          message

          description The server encountered an internal error () that prevented it from
          fulfilling this request.

          exception

          javax.servlet.ServletException: java.lang.NullPointerException
          org.kohsuke.stapler.Stapler.invoke(Stapler.java:233)
          org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:207)
          org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
          org.kohsuke.stapler.Stapler.invoke(Stapler.java:224)
          org.kohsuke.stapler.Stapler.invoke(Stapler.java:169)
          org.kohsuke.stapler.Stapler.service(Stapler.java:68)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

          root cause

          java.lang.NullPointerException
          java.util.StringTokenizer.<init>(StringTokenizer.java:182)
          java.util.StringTokenizer.<init>(StringTokenizer.java:219)
          hudson.scm.SubversionSCM$DescriptorImpl$1.check(SubversionSCM.java:589)
          hudson.util.FormFieldValidator.process(FormFieldValidator.java:33)
          hudson.scm.SubversionSCM$DescriptorImpl.doAuthenticationCheck(SubversionSCM.java:587)
          sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          java.lang.reflect.Method.invoke(Method.java:585)
          org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:50)
          org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:59)
          org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
          org.kohsuke.stapler.Stapler.invoke(Stapler.java:224)
          org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:207)
          org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
          org.kohsuke.stapler.Stapler.invoke(Stapler.java:224)
          org.kohsuke.stapler.Stapler.invoke(Stapler.java:169)
          org.kohsuke.stapler.Stapler.service(Stapler.java:68)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

          this happens consistently when I create a new job

          but the integration of svnkit seems to get going and that's just great!

          al_xipe added a comment - this is great news kohsuke. I've deployed the 1.74 snapshot but I get an exception when hudson attempts to retrieve the bits... type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: java.lang.NullPointerException org.kohsuke.stapler.Stapler.invoke(Stapler.java:233) org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:207) org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30) org.kohsuke.stapler.Stapler.invoke(Stapler.java:224) org.kohsuke.stapler.Stapler.invoke(Stapler.java:169) org.kohsuke.stapler.Stapler.service(Stapler.java:68) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) root cause java.lang.NullPointerException java.util.StringTokenizer.<init>(StringTokenizer.java:182) java.util.StringTokenizer.<init>(StringTokenizer.java:219) hudson.scm.SubversionSCM$DescriptorImpl$1.check(SubversionSCM.java:589) hudson.util.FormFieldValidator.process(FormFieldValidator.java:33) hudson.scm.SubversionSCM$DescriptorImpl.doAuthenticationCheck(SubversionSCM.java:587) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:50) org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:59) org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30) org.kohsuke.stapler.Stapler.invoke(Stapler.java:224) org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:207) org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30) org.kohsuke.stapler.Stapler.invoke(Stapler.java:224) org.kohsuke.stapler.Stapler.invoke(Stapler.java:169) org.kohsuke.stapler.Stapler.service(Stapler.java:68) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) this happens consistently when I create a new job but the integration of svnkit seems to get going and that's just great!

          NPE fixed. The change should be in snapshot 2015.

          Kohsuke Kawaguchi added a comment - NPE fixed. The change should be in snapshot 2015.

          afarentino added a comment -

          Marking this issue as a blocker/holdup for JENKINS-5744 as well. A change of this scope where Jenkins interacts directly from Java with an api that can access CVS seems like one that would/should preclude making any additional fixes/enhancements to the current cvs plugin.

          If this is not the case, please remove the blocker I've added for tracking purposes.
          Thanks
          -Tony

          afarentino added a comment - Marking this issue as a blocker/holdup for JENKINS-5744 as well. A change of this scope where Jenkins interacts directly from Java with an api that can access CVS seems like one that would/should preclude making any additional fixes/enhancements to the current cvs plugin. If this is not the case, please remove the blocker I've added for tracking purposes. Thanks -Tony

          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 now uses a modified version of Netbeans' lib.cvsclient rather than using system binaries

          Michael Clarke added a comment - Cvs plugin now uses a modified version of Netbeans' lib.cvsclient rather than using system binaries

            mc1arke Michael Clarke
            al_xipe al_xipe
            Votes:
            5 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: