Skip to end of metadata
Go to start of metadata

Plugin Information

View CVS on the plugin site for more information.

This plugin is up for adoption. Want to help improve this plugin? Click here to learn more!

This plugin currently un-maintained and looking for a new owner. Contact the Jenkins Dev mailing list if you need any further information.This bundled plugin integrates Jenkins with CVS version control system.Note: This plugin was part of the Jenkins core until 1.340. After that, it was split out into a separately update-able plugin. However, for backwards compatibility purposes, subsequent core releases still bundle the (old) version. If you do not use this plugin at all, you can simply disable it.

Change Log

Version 2.14 (Feb 28, 2018)

  • JENKINS-26345 - Getting issue details... STATUS
  • JENKINS-49574 - Getting issue details... STATUS  necessary for users of Jenkins 2.102+
  • Use standard JSch library (PR 47)
Version 2.13 (Jan 18, 2017)
  • Select the checkout timestamp wisely to honor the spirit of quiet period (pull request)
  • CVS plugin now works with Jenkins Pipeline (JENKINS-27717)
  • Ignore recusive symlinks during cvs update (JENKINS-23234)
Version 2.12 (June 10, 2014)
  • Reduce memory usage during changelog handling (JENKINS-19458)
  • Don't prune non directory modules (JENKINS-20317)
  • Don't queue new builds for changes in the current build (JENKINS-19314)
  • German localisation improvements
Version 2.11 (October 24, 2013)
  • Fix change log retrieval on slaves (JENKINS-20192)
  • Fix issues with files not being updated, being removed, or incorrectly backed-up when 'Force Clean Copy' is enabled (JENKINS-17383, JENKINS-20188)
Version 2.10 (October 21, 2013)
  • Match global authentication rules in a case-insensitive manner on hostname
  • Fix empty directory prune when running in quiet mode (JENKINS-18390)
  • Fix ConcurrentModificationException on polling (JENKINS-18329)
  • Fix sporadic ssh connection failures (JENKINS-18591)
  • Fix post checkout change log generation always running on master (JENKINS-13764)
  • Expand tag/branch name during polling (JENKINS-19653)
  • Properly match exclude regions during polling (JENKINS-15826)
  • Don't skip subsequent modules after first successful tag in multi-module setup (JENKINS-15735)
  • Don't poll if last checkout hasn't completed to prevent multiple builds of same change (JENKINS-19314)
  • Fix polling and workspace updates when CVS server is in a different timezone from Jenkins (JENKINS-17383, JENKINS-17965)
Version 2.9 (June 03, 2013)
  • Prevent removal of tag information during checkout (JENKINS-16314)
  • Improve efficiency of file tagging (JENKINS-15735)
  • Match global authentication entries even when no CVS port is defined (JENKINS-16432)
  • Prevent potential ConcurrentModificationException during polling
  • Allow repository browsers to be defined at the repository level rather then the job level
  • Fix an issue with identifying branches/tags in for CVS parameters (JENKINS-17656)
  • Allow CVS to be very quiet in the logs (JENKINS-17470)
  • Fix OpenGrok browser support
Version 2.8 (February 19, 2013)
  • Add option to force clean update (cvs up -C) (JENKINS-15848)
  • Allow dashes in projestset module names (JENKINS-15525)
  • Resolve issue with sticky date cleanup if workspace is flattened (JENKINS-16412)
  • Fix log parsing issue for repositories defined with backslashes (JENKINS-16044)
  • Fix AbstractCvs instantiation error in logs for old non projectset builds (JENKINS-15702)
  • Split mail address resolver into separate plugin to prevent delays at the end of the build (JENKINS-16389)
Version 2.7 (November 05, 2012)
  • Add functions to support CVS Tag plugin
  • Exclude Non-Head changes from changelog (JENKINS-15416)
  • Don't set checkout-as option on checkout command if local name is not over-ridden (JENKINS-15132)
  • Tidy up projectset parser to allow period on hostname, no port numbers and slashes in remote name (JENKINS-15525)
  • Fix mixing descriptor exception in logs
  • Force socket timeout on connection to CVS server (JENKINS-13032)
Version 2.6 (September 22, 2012)
  • Fix potential NPE when cleaning up workspace following a checkout/update
  • Parse changelog generated from old versions of the CVS plugin properly (JENKINS-14711)
  • Add support for check-out and dynamic parse of Eclipse Projectset (psf) files
  • Allow configuration of username and passwords for CVSROOTs across jobs, similar to how cvspass file works on CVS Clients (JENKINS-12582)
  • Change parsing of CVS Rlog output from REGEXP to Token Based to improve efficiency and handle varied input (JENKINS-14163, JENKINS-14293)
  • Explicitly specify encoding for reading and writing changelog and temporary files (JENKINS-4633, JENKINS-14678)
  • Correct link to ViewCVS/ViewVC repository browser from changelog lists (JENKINS-14343)
  • Prevent StackOverflowException when comparing changesets (JENKINS-13959)
  • Perform variable expansion on module names for Core CVS (non Projectset) modules (JENKINS-13186)
  • Add OpenGrok as a repository browser
  • Add job parameter for listing CVS branches and tags for a given module (JENKINS-9311)
Version 2.5 (August 1, 2012)
  • Build tagging allows direct creation of a branch rather than a tag (JENKINS-2460)
  • Checking out a non head location does not try and use sticky dates (JENKINS-13789)
  • Checking out a submodule, or a module into a subdirectory no longer causes CVS to throw an exception (JENKINS-13264)
  • Checkout/update no longer leaves the workspace looking like it needs updated before commit/build actions (JENKINS-13734)
  • SSH authentication file path separators are changed to match local system requirements when moving between slaves/host (JENKINS-13764)
  • Legacy mode can now be disabled properly - regression in Version 2.4 (JENKINS-14141)
Version 2.4 (June 3, 2012)
  • Branch/Tag/Head is specified above module level in configuration to save entering/changing the name in multiple locations (JENKINS-12598)
  • Enabling 'use head if not found' now detects changes and creates change-logs properly (JENKINS-12104)
  • Polling and change-logs now work correctly on branch and tag modules (JENKINS-13277)
  • Post build tagging no longer throws exception during execution (JENKINS-13439)
Version 2.3 (April 12, 2012)
Version 2.2 (March 26, 2012)
  • Timezones in CVS commands are now formatted numerically (+XXXX rather then GMT/EST/CEST etc) (JENKINS-12573)
  • Perform variable expansion on known hosts and private key fields
  • Fix issue writing local files marked as read only in the repository
Version 2.1 (March 17, 2012)

Fixes various issues introduced with Version 2.0:

Features added in this release:

  • Add in EXT (SSH) support for cvsclient including public key authentication (JENKINS-4687)
  • Set executable file permissions as per repository state (JENKINS-12628)
  • Allow clean checkout if update fails (JENKINS-753)
Version 2.0 (Jan 28, 2012)
  • Allowing multiple repositories (CVSROOTs) in a single checkout (JENKINS-2638)
  • Allow modules from different locations (branch, tag or head) in a single checkout (JENKINS-768, JENKINS-6812)
  • Use a java CVS library rather than require a system binary (JENKINS-49, JENKINS-3848)
  • Use the CVS rlog command for polling and the rtag command for tagging (rather than log and tag)
  • Fix handling of files with non ASCII characters in the filenames
  • Encrypt CVS passwords so they're not visible to other users
  • Workspace is no longer required for polling
  • Changes in the repository state (deleted files) are picked up properly
  • Variable references can be used in branch and tag names
Version 1.6 (Aug 17, 2011)
  • Location of cvspass and cvs.exe can now contain environment variable reference. (report)
Version 1.5 (Jul 25, 2011)
Version 1.4 (May 27, 2011)
  • Improved the handling of large changelog
Version 1.3 (Feb 14, 2011)
  • Translation update (Chinese)
Version 1.2 (Jul 20, 2010)
  • Fix NPE in "tag all upstream builds" feature. (JENKINS-4374)
  • Avoid file handle leak if there are errors reading CVS/Entries files.
Version 1.1 (Mar 25, 2010)
  • Improved the debug switch behavior to cover "cvs update" (report)
  • Space in the module name breaks after-the-fact tagging (JENKINS-4961)
Version 1.0 (Jan 13, 2010)
  • Fixed "tried to access method hudson.scm.ChangeLogSet$Entry.setParent(Lhudson/scm/ChangeLogSet;)V from class hudson.scm.CVSChangeLogSet" (JENKINS-5251)
Version 0.1 (Dec 24, 2009)
  • Initial version, split from the core. The CVS functionality has been in the core for several years.

Please do not raise issues on this page. Either raise them on the Jira Issue Tracker or email the Jenkins users email list.

6 Comments

  1. Hi,

    Couldn't you when building the change log delete all the .class files in a build folder?

    For example:

         <file>
                <name><![CDATA[example/src/com/test/MyExample.java]]></name>
                <fullName><![CDATA[example/src/com/test/MyExample.java]]></fullName>
                <revision>1.2</revision>
         </file>

    Then i would add a new field:

    Build folder: example/build

    At this point I would cycle over the files in the folder that start with example/build/com/test/MyExample and remove all the corresponding files.

    Do you agree with the suggestion?

    Best regards,

    David

  2. I'm not quite sure I understand what you're aiming at here, but the CVS plugin is language/content agnostic so it wouldn't make sense to try and perform a Java clean as part of a checkout or change log generation - that would be up to another plugin.

  3. I cannot not get authenticate to work.  I get this error message :

    Started by timer
    Building in workspace /var/lib/jenkins/jobs/test-jenkins-eir-perl/workspace
    Using locally configured password for connection to :ext:rcricket@my-repo.example.com:/usr/local/cvsroot
    cvs checkout -P -D 26 Feb 2014 18:01:46 -0500 -d workspace platform/eir-perl
    ERROR: CVS Authentication failed: null
    org.netbeans.lib.cvsclient.connection.AuthenticationException: SSH connection failed.
            at org.netbeans.lib.cvsclient.connection.SSHConnection.open(SSHConnection.java:141)
            at org.netbeans.lib.cvsclient.Client$1.run(Client.java:374)
            at java.lang.Thread.run(Thread.java:736)
    Caused by: com.jcraft.jsch.JSchException: java.io.FileNotFoundException: /var/lib/jenkins/.ssh/id_rsa (No such file or directory)
            at com.jcraft.jsch.KeyPair.load(KeyPair.java:524)
            at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
            at com.jcraft.jsch.JSch.addIdentity(JSch.java:389)
            at com.jcraft.jsch.JSch.addIdentity(JSch.java:370)
            at org.netbeans.lib.cvsclient.connection.SSHConnection.open(SSHConnection.java:135)
            ... 2 more
    Caused by: java.io.FileNotFoundException: /var/lib/jenkins/.ssh/id_rsa (No such file or directory)
            at java.io.FileInputStream.<init>(FileInputStream.java:123)
            at java.io.FileInputStream.<init>(FileInputStream.java:83)
            at com.jcraft.jsch.Util.fromFile(Util.java:492)
            at com.jcraft.jsch.KeyPair.load(KeyPair.java:521)
            ... 6 more
    ERROR: Cvs task failed
    Finished: FAILURE
    Started by timer

    I am using Jenkins ver. 1.552

    and cvs plugin version 2.11

    and yes I can checkout of cvs from my command line.

    So how does one get cvs to work with jenkins? Is there any step by step docs?

    Thanks!

    1. Hi,

      I'm too experiencing this issue with authentication. We are using pserver access (instead of SSH) with username/password. No matter what, cvs plugn tries to connect via SSH. This is how looks my CVSROOT configuration:
      pserver:username@host:/cvsroot/path

      Authentication and checkout works OK with tortoisecvs.

      Using Jenkins ver. 1.605 and CVSPlugin 2.12

      This is what I'm getting if there is no id_rsa available in expected folder:
      ERROR: CVS Authentication failed: null
      org.netbeans.lib.cvsclient.connection.AuthenticationException: SSH connection failed.
      at org.netbeans.lib.cvsclient.connection.SSHConnection.open(SSHConnection.java:141)
      at org.netbeans.lib.cvsclient.Client$1.run(Client.java:374)
      at java.lang.Thread.run(Unknown Source)
      Caused by: com.jcraft.jsch.JSchException: java.io.FileNotFoundException: C:\Users\username\.ssh\id_rsa (The system cannot find the file specified)
      at com.jcraft.jsch.KeyPair.load(KeyPair.java:524)
      at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
      at com.jcraft.jsch.JSch.addIdentity(JSch.java:389)
      at com.jcraft.jsch.JSch.addIdentity(JSch.java:370)
      at org.netbeans.lib.cvsclient.connection.SSHConnection.open(SSHConnection.java:135)
      ... 2 more
      Caused by: java.io.FileNotFoundException: C:\Users\username\.ssh\id_rsa (The system cannot find the file specified)
      at java.io.FileInputStream.open(Native Method)
      at java.io.FileInputStream.<init>(Unknown Source)
      at java.io.FileInputStream.<init>(Unknown Source)
      at com.jcraft.jsch.Util.fromFile(Util.java:492)
      at com.jcraft.jsch.KeyPair.load(KeyPair.java:521)
      ... 6 more
      ERROR: Cvs task failed
      Finished: FAILURE

      I also tried to generate my own id_rsa and put it to that directory. I simply created a private key for my machine and converted it to id_rsa. But because it's not assigned to cvs account (as we don't use SSH access), it's useless for the purpose of CVS autentication via SSH? And sure enough, Jenkins fails to authenticate to CVS with the following error:
      ERROR: CVS Authentication failed: null
      org.netbeans.lib.cvsclient.connection.AuthenticationException: SSH connection failed.
      at org.netbeans.lib.cvsclient.connection.SSHConnection.open(SSHConnection.java:141)
      at org.netbeans.lib.cvsclient.Client$1.run(Client.java:374)
      at java.lang.Thread.run(Unknown Source)
      Caused by: com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 2 Too many authentication failures for pserver
      at com.jcraft.jsch.Session.read(Session.java:986)
      at com.jcraft.jsch.UserAuthPassword.start(UserAuthPassword.java:91)
      at com.jcraft.jsch.Session.connect(Session.java:463)
      at com.jcraft.jsch.Session.connect(Session.java:183)
      at org.netbeans.lib.cvsclient.connection.SSHConnection.open(SSHConnection.java:139)
      ... 2 more
      ERROR: Cvs task failed
      Finished: FAILURE

      Any idea what to do? I think the whole problem starts with Jenkins general CVS configuration, where is predefined "Private Key Location" and "Known Hosts Location" which cannot be deleted. This is discussed here:https://groups.google.com/forum/#\!msg/jenkinsci-users/ROJ_NDRGw0A/_ffZYPARC6cJ

      Is there any way to overcome this problem? Thank you in advance.

      Pavel

      EDIT:

      In the end, it was a user error. There was a missing "colon" in front of the pserver keyword ;) So the path should be like this:

      :pserver:username@host:/cvsroot/path

      The id_rsa key is not required then. Sorry for false alarm.

  4. I was wondering what the ETA for version 2.13 is?  I believe I need 2.13 to use CVS within the Workflow plugin.

    Thanks!

  5. I'd like a change made to this plugin: I'd like it to accept multiple tags (space separated) and check out the files using the list of tags in order.