Wiki News Projects Sources Tasks New Task Reports
EmForgeVersionControlIn...
Page Info Get as PDF

EmForge Version Control Integration

Introduction

Since EmForge-0.24 there is used Maven SCM Library.
It has allowed us to support many SCM's - see list of SCM's supported by Maven SCM.

List of SCM's currently supported by EmForge

All Maven SCM providers used by EmForge are declared in Spring configuration file emforge-vc.xml.

Currently there are:

    <!-- SCM Manager -->
    <bean id="scmManager" class="org.emforge.scm.ScmManagerBean">
        <property name="providers">
            <map>
                <entry key="svn" value-ref="svnScmProvider" />
                <entry key="cvs" value-ref="cvsScmProvider" />
            </map>
        </property>
    </bean>

    <!-- Maven SCM provider for Subversion (http://subversion.tigris.org) -->
    <bean id="svnScmProvider" class="org.apache.maven.scm.provider.svn.svnjava.SvnJavaScmProvider" />

    <!-- Maven SCM provider for CVS (http://ximbiot.com/cvs) -->
    <bean id="cvsScmProvider" class="org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider" />

Can I use another SCM in EmForge?

Yes if Maven SCM library supports your SCM and the corresponding provider supports changelog and list commands (see Maven SCM Matrix) + the provider should be declared in emforge-vc.xml.

Otherwise please create a new request to:

  1. Maven SCM Team to support your SCM provider (use Maven SCM Project's Mailing Lists);
  2. EmForge Team to adapt existing SCM provider for EmForge if it is necessary (use New Task Wizard).

What does you mean by "adapt existing SCM provider for EmForge"?

Actually Maven SCM API 1.0 does not allow to get full information which are displayed by EmForge Source Browser, and as result we had to extend the API (see maven-scm-api-extended) and adapt used providers to the new API.

The new API specifies the following:

  1. ScmFileEx (extends ScmFile) - provides additional file properties (like MIME type, file size, user properties);
  2. ScmFileSetEx (extends ScmFileSet) - allows to work without Working Copy;
  3. ChangeFileEx (extends ChangeFile) - provides change kind (like Added, Modified, Deleted and etc.);
  4. AbstractCatCommand (extends AbstractCommand), CatScmResult (extends ScmResult) and ScmProviderEx (extends ScmProvider) allow to use cat operation to display a file content (see all commands required for EmForge Browser).

Unfortunately, all existing original Maven SCM providers do not allow to display the additional information.
Currently we've posted a request to Maven SCM Team to support the new features (see Maven SCM Mailing list archive for May 2008).

How to use it

You should just specify SCM URL to your repository in config.properties (in special format):
source.scm.url=scm:<scm_provider><delimiter><provider_specific_part>

As delimiter you can use either colon ':' or, if you use a colon for one of the variables (e.g. a windows path), you can use a pipe '|'.

For information about the provider specific part, see the appropriate SCM implementation.

For example, for EmForge Subversion repository it looks as

source.scm.url=scm:svn:http://svn.emforge.org/svn/emforge

Where can I ask a question?

  1. EmForge Project's Mailing Lists
  2. Maven SCM Project's Mailing Lists
Last Modified by szakusov 3 months ago
Comments (0)
Login to add comment