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

CVS plugin detect changes in 'rlog' but not in 'update'

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • cvs-plugin
    • None
    • CVS plugin 2.8

      So this is what I'm doing:

      I commit a file from GMT+1 timezone (CET), the CVS server and jenkins are running on GMT-7 timezone (PDT).

      After the commit, the Jenkins server detects my change, and it displays the commit log in the "changes" page, but the "cvs update" does not update to the latest revision.

      This is when using the "Use Update" version, if I uncheck this option, the plugin performs a checkout and it works correctly, it retrieves the latest revision.

          [JENKINS-17383] CVS plugin detect changes in 'rlog' but not in 'update'

          Isaac Cruz created issue -

          Can you attach a job log showing the polling and update part of the CVS actions?

          Michael Clarke added a comment - Can you attach a job log showing the polling and update part of the CVS actions?

          Isaac Cruz added a comment - - edited

          Yes, I've just created a new test job to keep it as short as possible.

          So first, created a new module and a new job, and on first build everything went correctly.

          Then I modify a file (src/main/scripts/testfile) and commit. This is the new content:
          ------------------
          // CVS version control block - do not edit manually
          // $Author: icruz $
          // $Revision: 1.2 $
          // $Date: 2013/03/27 14:44:48 $
          // $Source: /mnt/cvs/finesse/testcvs/src/main/scripts/testfile,v $

          This is a test

          Modified!
          ------------------

          Then I re-run the job, and this is the job output (I've set the "Use Update", "Prune Empty Directories", "Show all CVS output" and "Force clean copy for locally modified files" options):
          ------------------
          Started by user anonymous
          Building remotely on No DB node in workspace /opt/hudson/nodbnode/workspace/cvs-test
          cvs update -C -d -P -r HEAD -D 27 Mar 2013 07:44:58 -0700 cvs-test
          ? cvs-test/target
          cvs update: Updating cvs-test
          cvs update: warning: cvs-test/pom.xml was lost
          U cvs-test/pom.xml
          cvs update: Updating cvs-test/src
          cvs update: Updating cvs-test/src/main
          cvs update: Updating cvs-test/src/main/scripts
          cvs update: warning: cvs-test/src/main/scripts/testfile was lost
          U cvs-test/src/main/scripts/testfile
          cvs rlog -S -d27 Mar 2013 07:43:44 -0700<27 Mar 2013 07:44:58 -0700 finesse/testcvs
          cvs rlog: Logging finesse/testcvs
          cvs rlog: Logging finesse/testcvs/src
          cvs rlog: Logging finesse/testcvs/src/main
          cvs rlog: Logging finesse/testcvs/src/main/scripts
          Parsing POMs
          ------------------

          I don't know why that warnings appear when setting the "Show all CVS output", but anyway, I open the file in workspace and it's still on revision 1.1:
          ------------------
          // CVS version control block - do not edit manually
          // $Author: icruz $
          // $Revision: 1.1 $
          // $Date: 2013/03/27 14:43:23 $
          // $Source: /mnt/cvs/finesse/testcvs/src/main/scripts/testfile,v $

          This is a test
          ------------------
          But in the "changes" page for this job run, my change is detected, here's a screenshot:
          http://gyazo.com/fa4c9d7c6d2c01c17d366e74051fe54d

          Thanks,
          Isaac

          Isaac Cruz added a comment - - edited Yes, I've just created a new test job to keep it as short as possible. So first, created a new module and a new job, and on first build everything went correctly. Then I modify a file (src/main/scripts/testfile) and commit. This is the new content: ------------------ // CVS version control block - do not edit manually // $Author: icruz $ // $Revision: 1.2 $ // $Date: 2013/03/27 14:44:48 $ // $Source: /mnt/cvs/finesse/testcvs/src/main/scripts/testfile,v $ This is a test Modified! ------------------ Then I re-run the job, and this is the job output (I've set the "Use Update", "Prune Empty Directories", "Show all CVS output" and "Force clean copy for locally modified files" options): ------------------ Started by user anonymous Building remotely on No DB node in workspace /opt/hudson/nodbnode/workspace/cvs-test cvs update -C -d -P -r HEAD -D 27 Mar 2013 07:44:58 -0700 cvs-test ? cvs-test/target cvs update: Updating cvs-test cvs update: warning: cvs-test/pom.xml was lost U cvs-test/pom.xml cvs update: Updating cvs-test/src cvs update: Updating cvs-test/src/main cvs update: Updating cvs-test/src/main/scripts cvs update: warning: cvs-test/src/main/scripts/testfile was lost U cvs-test/src/main/scripts/testfile cvs rlog -S -d27 Mar 2013 07:43:44 -0700<27 Mar 2013 07:44:58 -0700 finesse/testcvs cvs rlog: Logging finesse/testcvs cvs rlog: Logging finesse/testcvs/src cvs rlog: Logging finesse/testcvs/src/main cvs rlog: Logging finesse/testcvs/src/main/scripts Parsing POMs ------------------ I don't know why that warnings appear when setting the "Show all CVS output", but anyway, I open the file in workspace and it's still on revision 1.1: ------------------ // CVS version control block - do not edit manually // $Author: icruz $ // $Revision: 1.1 $ // $Date: 2013/03/27 14:43:23 $ // $Source: /mnt/cvs/finesse/testcvs/src/main/scripts/testfile,v $ This is a test ------------------ But in the "changes" page for this job run, my change is detected, here's a screenshot: http://gyazo.com/fa4c9d7c6d2c01c17d366e74051fe54d Thanks, Isaac

          What happens if you try and replicate these steps manually using a CVS client? The commands being passed by the CVS plugin seems valid, so the issue lies in either the CVSClient or the CVS server. I can change the CVS client if it is at fault, but the CVS server is outwith my control.

          Michael Clarke added a comment - What happens if you try and replicate these steps manually using a CVS client? The commands being passed by the CVS plugin seems valid, so the issue lies in either the CVSClient or the CVS server. I can change the CVS client if it is at fault, but the CVS server is outwith my control.

          Isaac Cruz added a comment -

          Ok, both the client and server are CVS 1.11.22.

          $ cvs rlog -S -d"27 Mar 2013 07:43:44 -0700<27 Mar 2013 07:44:58 -0700" finesse/testcvs
          cvs rlog: Logging finesse/testcvs
          cvs rlog: Logging finesse/testcvs/src
          cvs rlog: Logging finesse/testcvs/src/main
          cvs rlog: Logging finesse/testcvs/src/main/scripts

          RCS file: /mnt/cvs/finesse/testcvs/src/main/scripts/testfile,v
          head: 1.2
          branch:
          locks: strict
          access list:
          symbolic names:
          keyword substitution: kv
          total revisions: 2; selected revisions: 1
          description:
          ----------------------------
          revision 1.2
          date: 2013/03/27 14:44:48; author: icruz; state: Exp; lines: +6 -4
          Test: modify file
          =============================================================================

          $ cvs update -C -d -P -D "27 Mar 2013 07:44:58 -0700"
          cvs update: Updating .
          cvs update: Updating src
          cvs update: Updating src/main
          cvs update: Updating src/main/scripts
          U src/main/scripts/testfile

          (and it updates the file to revision 1.2)

          So both work correctly here... note that I have removed the "-r HEAD" option as this option together with -D was not working, it was removing all files saying that they were "no longer in repository"

          Isaac Cruz added a comment - Ok, both the client and server are CVS 1.11.22. $ cvs rlog -S -d"27 Mar 2013 07:43:44 -0700<27 Mar 2013 07:44:58 -0700" finesse/testcvs cvs rlog: Logging finesse/testcvs cvs rlog: Logging finesse/testcvs/src cvs rlog: Logging finesse/testcvs/src/main cvs rlog: Logging finesse/testcvs/src/main/scripts RCS file: /mnt/cvs/finesse/testcvs/src/main/scripts/testfile,v head: 1.2 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 2; selected revisions: 1 description: ---------------------------- revision 1.2 date: 2013/03/27 14:44:48; author: icruz; state: Exp; lines: +6 -4 Test: modify file ============================================================================= $ cvs update -C -d -P -D "27 Mar 2013 07:44:58 -0700" cvs update: Updating . cvs update: Updating src cvs update: Updating src/main cvs update: Updating src/main/scripts U src/main/scripts/testfile (and it updates the file to revision 1.2) So both work correctly here... note that I have removed the "-r HEAD" option as this option together with -D was not working, it was removing all files saying that they were "no longer in repository"

          Isaac Cruz added a comment -

          Update: it seems to NOT be related to the date in -D option, I've changed the configuration to download a tag instead of HEAD (leaving the field empty so it actually use HEAD), and it still does not update to the last revision.

          This is the command displayed in log:

          cvs update -C -d -P -r HEAD cvs-test

          It eventually downloads the last revision... but not at least after 1 hour

          Isaac Cruz added a comment - Update: it seems to NOT be related to the date in -D option, I've changed the configuration to download a tag instead of HEAD (leaving the field empty so it actually use HEAD), and it still does not update to the last revision. This is the command displayed in log: cvs update -C -d -P -r HEAD cvs-test It eventually downloads the last revision... but not at least after 1 hour

          Isaac Cruz added a comment -

          Update2: I have been testing the java CVS client, and discovered this issue is caused by the "-C" option.

          If I execute this:
          $ java org.netbeans.lib.cvsclient.commandLine.CVSCommand update -C -d -P
          cvs update: Updating .
          cvs update: warning: testfile was lost
          U testfile

          The testfile is NOT updated (in spite of the output).

          If I execute this:
          $ java org.netbeans.lib.cvsclient.commandLine.CVSCommand update -d -P
          cvs update: Updating .
          U testfile

          The testfile is updated correctly

          Isaac Cruz added a comment - Update2: I have been testing the java CVS client, and discovered this issue is caused by the "-C" option. If I execute this: $ java org.netbeans.lib.cvsclient.commandLine.CVSCommand update -C -d -P cvs update: Updating . cvs update: warning: testfile was lost U testfile The testfile is NOT updated (in spite of the output). If I execute this: $ java org.netbeans.lib.cvsclient.commandLine.CVSCommand update -d -P cvs update: Updating . U testfile The testfile is updated correctly

          K P added a comment -

          I confirm this issue - update not working.
          (by the way: CVS client and server running in same timezone. CVS server = CVSNT server)

          The update is seen in cvs logging, but the file is not updated.
          I have the "force clean copy" (-C) option is check as well.

          The workspace file is not updated. However, it did copy the "old" version to a ".#." file in the workspace (same directory as original file). But after that, the actual file is not updated to the latest (HEAD) version. So update is broken.

          K P added a comment - I confirm this issue - update not working. (by the way: CVS client and server running in same timezone. CVS server = CVSNT server) The update is seen in cvs logging, but the file is not updated. I have the "force clean copy" (-C) option is check as well. The workspace file is not updated. However, it did copy the "old" version to a ".# . " file in the workspace (same directory as original file). But after that, the actual file is not updated to the latest (HEAD) version. So update is broken.
          javyer made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]

          Could one of you who can replicate this issue try the attached snapshot. It uses the updated cvs client which contains changes for the CVS 1.12.13 protocol.

          Michael Clarke added a comment - Could one of you who can replicate this issue try the attached snapshot. It uses the updated cvs client which contains changes for the CVS 1.12.13 protocol.
          Michael Clarke made changes -
          Attachment New: cvs.hpi [ 23484 ]

            mc1arke Michael Clarke
            icruz Isaac Cruz
            Votes:
            9 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated:
              Resolved: