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

Missing changelog if dirs deleted from CVS

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved (View Workflow)
    • Critical
    • Resolution: Fixed
    • cvs-plugin
    • None
    • Platform: All, OS: All

    Description

      When files are deleted from the repository, the build log looks like

      ....
      [j2ee] $ cvs -q -z9 update -PdC
      P refactoring/manifest.mf
      cvs server:
      refactoring/src/org/netbeans/modules/j2ee/refactoring/resources/mf-layer.xml is
      no longer in the repository
      [j2eeserver] $ cvs -q -z9 update -PdC
      ....
      $ computing changelog
      ERROR: cvs exited with error code 1
      Command line was [Executing 'cvs' with arguments:
      '-d:pserver:anoncvs@cvs.netbeans.org:/cvs'
      'log'
      '-d'
      '>=2006-07-28'
      ....
      'j2ee/refactoring/manifest.mf'
      'j2ee/refactoring/src/org/netbeans/modules/j2ee/refactoring/resources/mf-layer.xml'

      The ' characters around the executable and arguments are
      not part of the command.
      ....

      The Hudson log does not include the actual error output from CVS, which if you
      try it manually is:

      cvs [log aborted]: no such directory
      `j2ee/refactoring/src/org/netbeans/modules/j2ee/refactoring/resources'

      I think the problem is not for any file deletion, but when the last file in a
      dir is deleted. Then up -dP deletes the dir, and cvs log complains that it does
      not exist.

      Should either

      1. Skip over nonexistent dirs to avoid the error (but fail to report the deleted
      files in the changelog).

      2. Run cvs rlog. Note: with CVS servers run by CollabNet like netbeans.org or
      dev.java.net, you need to use a special CVSROOT in order for rlog to work. E.g.:

      $ cvs -d :pserver:guest@cvs.dev.java.net:/cvs rlog hudson/hudson/build.xml
      lock.c:223: failed assertion `strncmp (repository,
      current_parsed_root->directory, strlen (current_parsed_root->directory)) == 0'
      cvs [rlog aborted]: received abort signal
      lock.c:223: failed assertion `strncmp (repository,
      current_parsed_root->directory, strlen (current_parsed_root->directory)) == 0'
      cvs [rlog aborted]: received abort signal
      $ cvs -d :pserver:guest@cvs.dev.java.net:/shared/data/ccvs/repository rlog
      hudson/hudson/build.xml
      [OK]

      3. Temporarily resurrect CVS working dirs with the correct contents, run the
      changelog, then delete them again.

      Attachments

        Issue Links

          Activity

            People

              mc1arke Michael Clarke
              jglick Jesse Glick
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: