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

When checking out/updating from a branch, the checkout does not respect the timestamp

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • cvs-plugin
    • None

      Ok, so you can see my attempt to fix this issue here:

      https://github.com/jenkinsci/cvs-plugin/commit/d0c8df0fa8c0f35c92b43e46d7ac59d21ef926db

      I have since backed it out:

      https://github.com/jenkinsci/cvs-plugin/commit/7c5f8e917274ae09159190d8294a572d5904659d

      But I actually believe that my original change should be OK, except that

      https://github.com/jenkinsci/cvsclient/blob/master/src/main/java/org/netbeans/lib/cvsclient/command/update/UpdateCommand.java#L309

      Assumes you never want to issue a cvs command like:

      cvs update -C -d -P -r BRANCH_NAME -D "14 Oct 2014 07:32:34 -0400" ...
      

      Which seems nuts as I can think of loads of cases where I would want to check out a specific revision of a named branch... (but then I am no expert in CVS so perhaps that is not something you can do!!! )

      CheckoutCommand does not seem to have the same logic:

      https://github.com/jenkinsci/cvsclient/blob/master/src/main/java/org/netbeans/lib/cvsclient/command/checkout/CheckoutCommand.java#L432

      Anyway, in any case I am throwing up my hands and saying " I give up! " over to the plugin maintainer to see about fixing this one!

          [JENKINS-25166] When checking out/updating from a branch, the checkout does not respect the timestamp

          Jesse Glick added a comment -

          I cannot now remember whether you can mix -D and -r. It is possible one supersedes the other.

          http://stackoverflow.com/questions/3300471/cvs-get-the-state-of-some-branch-in-some-date is confusing since the querier states in the question that mixing them does not work, but then accepts an answer stating that it does work, with essentially the same options.

          I could not find a public CVS repository that uses branches at all.

          Jesse Glick added a comment - I cannot now remember whether you can mix -D and -r . It is possible one supersedes the other. http://stackoverflow.com/questions/3300471/cvs-get-the-state-of-some-branch-in-some-date is confusing since the querier states in the question that mixing them does not work, but then accepts an answer stating that it does work, with essentially the same options. I could not find a public CVS repository that uses branches at all.

          Well the plugin itself lets you mix -D and -r for checkout... just not for update!

          Stephen Connolly added a comment - Well the plugin itself lets you mix -D and -r for checkout... just not for update!

          Jesse Glick added a comment -

          Curious. Usually in CVS these operations are synonymous.

          Jesse Glick added a comment - Curious. Usually in CVS these operations are synonymous.

          I remember there being some oddity about using revision and date at the same time, but can't remember specifics. I'll create a patched version of cvslib and cvs-plugin tonight and try them against a private CVS repository tomorrow, but think there's a limitation in CVS server that stops this working.

          Michael Clarke added a comment - I remember there being some oddity about using revision and date at the same time, but can't remember specifics. I'll create a patched version of cvslib and cvs-plugin tonight and try them against a private CVS repository tomorrow, but think there's a limitation in CVS server that stops this working.

          @jesse, what I mean is that CheckoutCommand lets you specify both:

          https://github.com/jenkinsci/cvsclient/blob/master/src/main/java/org/netbeans/lib/cvsclient/command/checkout/CheckoutCommand.java#L432

          Now that could also be a bug in CheckoutCommand... but anyways

          Stephen Connolly added a comment - @jesse, what I mean is that CheckoutCommand lets you specify both: https://github.com/jenkinsci/cvsclient/blob/master/src/main/java/org/netbeans/lib/cvsclient/command/checkout/CheckoutCommand.java#L432 Now that could also be a bug in CheckoutCommand... but anyways

          Jesse Glick added a comment -

          Right, the ancient reptilian portion of my brain which stores idiosyncrasies of CVS behavior tensed up when it saw -D -r together, so it definitely merits testing.

          Jesse Glick added a comment - Right, the ancient reptilian portion of my brain which stores idiosyncrasies of CVS behavior tensed up when it saw -D -r together, so it definitely merits testing.

          @Michael, did you get a chance to test?

          https://github.com/jenkinsci/cvsclient/pull/2 is the change to cvsclient that our customer believes will do what they are looking for

          Stephen Connolly added a comment - @Michael, did you get a chance to test? https://github.com/jenkinsci/cvsclient/pull/2 is the change to cvsclient that our customer believes will do what they are looking for

          Jesse Glick added a comment -

          Linking to PR under evaluation.

          Jesse Glick added a comment - Linking to PR under evaluation.

            Unassigned Unassigned
            stephenconnolly Stephen Connolly
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: