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

fail checkout 2 modules with different path

    XMLWordPrintable

    Details

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

      Description

      I create two cvs modules with the path

      lib/flac-1.2.1
      drv/linux/fuse

      when it check out, got the error:

      cvs checkout -P -D 29 Mar 2012 11:40:15 +0800 -d lib/flac-1.2.1 lib/flac-1.2.1
      cvs [checkout aborted]: could not change directory to requested checkout directory `lib': No such file or directory

        Attachments

          Activity

          Hide
          valeni Valentin Batz added a comment - - edited

          I've experienced the same issue and traced it down to a cvsnt inconvenience.
          I'll try to explain my findings.
          The -d argument gets passed to the server. The server process creates a local copy in a tmp dir for the checkout with that argument as name. It does not create the required subdirectories and thats why the checkout will fail. I assume your cvsnt/cvs server is running in a unix environment, because it works with backslashes for you. I've discovered the same workaround. It's working because backslashes are valid in unix filenames/directories, and the first level directory is created in the tmpdir.
          I suggest not to pass the -d argument to the server, when doing 'partial checkouts' with subdirs.
          I'd rather suggest to implement a client-side redirection of the files/directories.

          Show
          valeni Valentin Batz added a comment - - edited I've experienced the same issue and traced it down to a cvsnt inconvenience. I'll try to explain my findings. The -d argument gets passed to the server. The server process creates a local copy in a tmp dir for the checkout with that argument as name. It does not create the required subdirectories and thats why the checkout will fail. I assume your cvsnt/cvs server is running in a unix environment, because it works with backslashes for you. I've discovered the same workaround. It's working because backslashes are valid in unix filenames/directories, and the first level directory is created in the tmpdir. I suggest not to pass the -d argument to the server, when doing 'partial checkouts' with subdirs. I'd rather suggest to implement a client-side redirection of the files/directories.
          Hide
          mc1arke Michael Clarke added a comment -

          Valentin: based in your comment, do you think changing the CVS command to contain backward slashes for the '-d' argument work in both Windows and Linux (i.e. cvs checkout -P -D 29 Mar 2012 11:40:15 +0800 -d lib\flac-1.2.1 lib/flac-1.2.1)? My test machine is Windows Client -> Windows Server so I can't replicate the defect properly.

          I reckon that changing to use client side redirection would cause CVS not to create CVS control files in the expected location so I'd have to fiddle about a bit, but may be an option if the backslashes 'quick fix' I've suggested doesn't work.

          Show
          mc1arke Michael Clarke added a comment - Valentin: based in your comment, do you think changing the CVS command to contain backward slashes for the '-d' argument work in both Windows and Linux (i.e. cvs checkout -P -D 29 Mar 2012 11:40:15 +0800 -d lib\flac-1.2.1 lib/flac-1.2.1)? My test machine is Windows Client -> Windows Server so I can't replicate the defect properly. I reckon that changing to use client side redirection would cause CVS not to create CVS control files in the expected location so I'd have to fiddle about a bit, but may be an option if the backslashes 'quick fix' I've suggested doesn't work.
          Hide
          valeni Valentin Batz added a comment -

          Michael: I think the backslash trick works on windows client-side only, independend from the cvs-server platform. I haven't tried cvs on linux client yet. I don't recommend to change the CVS command to contain backslashes. I think you should ommit the -d option when the 'CVS Module' contains slashes. The chekckout-as feature does not work with partial checkouts. I'd prefer a working 'partial checkout' feature over the 'checkout-as' feature, since it worked out of the box with versions < 2.0 of the CVS Plugin.

          Show
          valeni Valentin Batz added a comment - Michael: I think the backslash trick works on windows client-side only, independend from the cvs-server platform. I haven't tried cvs on linux client yet. I don't recommend to change the CVS command to contain backslashes. I think you should ommit the -d option when the 'CVS Module' contains slashes. The chekckout-as feature does not work with partial checkouts. I'd prefer a working 'partial checkout' feature over the 'checkout-as' feature, since it worked out of the box with versions < 2.0 of the CVS Plugin.
          Hide
          valeni Valentin Batz added a comment -

          I've just tried the -d argument on linux client with backslashes, it's not what you want. It creates the directory with the backslash in it.

          Show
          valeni Valentin Batz added a comment - I've just tried the -d argument on linux client with backslashes, it's not what you want. It creates the directory with the backslash in it.
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: mc1arke
          Path:
          src/main/java/hudson/scm/CVSSCM.java
          http://jenkins-ci.org/commit/cvs-plugin/70a90ec03ace11a703747e2317a6a3ad6a7e4112
          Log:
          [FIXED JENKINS-13264] Allow checkout of submodules

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: mc1arke Path: src/main/java/hudson/scm/CVSSCM.java http://jenkins-ci.org/commit/cvs-plugin/70a90ec03ace11a703747e2317a6a3ad6a7e4112 Log: [FIXED JENKINS-13264] Allow checkout of submodules

            People

            • Assignee:
              mc1arke Michael Clarke
              Reporter:
              cofung Eric Co
            • Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: