Maven SCM
  1. Maven SCM
  2. SCM-288

Improved support for SCM providers like ClearCase that do NOT check out directly into the check-out-dir but into sub-directories of the check-out-dir

    Details

      Description

      As discussed on http://www.nabble.com/Towards-full-ClearCase-integration-tf3433039.html

      PROBLEM:

      The ClearCase implementation of the checkout command for ClearCase creates a ClearCase snapshot view. Such a snaphsot view is very similiar to a CVS or Subversion checkout directory, but one major difference is the directory structure. To make it clear, consider the following example:

      Consider you have checked out the project MY_VOB/my/project to d:\continuum-work\167:

      • When working with CVS or SVN, you would find the POM file at d:\continuum-work\167\pom.xml.
      • With ClearCase, the location would be d:\continuum-work\167\MY_VOB\my\project\pom.xml. This means that the directory structure within the configuration management system, is repeated in every view (checkout directory). AFAIK it is not possible to change this ClearCase behaviour.

      This leads to the following problems:

      • After adding a project to Continuum, the build cannot be performed because the POM file cannot be found. The build definition has to be changed manually, so that the POM file location is e.g. "MY_VOB/my/project/pom.xml" instead of "pom.xml".
      • The maven-release-manager performs a clean checkout from a tag to the target/checkout directory, and then runs the build in that checkout directory. Same problem here, it would have to be run in e.g. "target/checkout/MY_VOB/my/project" instead of just "target/checkout".

      SOLUTION:

      The solution is to add an attribute to CheckOutScmResult that contains the path of the project directory relative to the checkout directory. By default, and for most SCM providers, it is just "". But the ClearCaseCheckOutCommand sets e.g. "MY_VOB/my/project" instead. (Notice that this is only be possible with auto-generated config specs as introduced by SCM-287).

      PATCH:

      The attached maven-scm-patch.txt contains a patch to maven-scm-api, maven-scm-provider-clearcase and the BootstrapMojo in maven-scm-plugin. I tested it by trying scm:bootstrap for ClearCase (works now) and SVN (still works).

      After applying the patch, please deploy a new maven-scm snapshot version to the Apache Snapshot repo as well.

      Continuum and the maven-release-manager will have to be changed to pay attention to this relative path attribute accordingly; I will try to submit patches in the next days, at least for maven-release-manager. Should these patches be part of this issue, or should separate issues be created for these projects?

      1. patch-maven-scm.txt
        8 kB
        Arne Degenring
      2. patch-maven-scm-2.txt
        17 kB
        Arne Degenring

        Issue Links

          Activity

            People

            • Assignee:
              Emmanuel Venisse
              Reporter:
              Arne Degenring
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development