Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [buckminster-dev] New version of Buckminster Book available (rev0.5)

Hi Henrik and Dieter,
I think a clarification is in order here.

For the SVN reader type to recognize branches and tags correctly, it's required that you have 'trunk' in the path (as in Dieters example). The parent of the trunk will be where Buckminster looks for the 'branches' and 'tags' folders. Which branch/tag that is used is then normally controlled using the branch/tag path in the CQUERY.

The VersionConverter can be used too but, as Dieter has found, it's slower since Buckminster then must examine all branches for the best match. Typically, the branches are a poor substitute for versions anyway since the version most often is deducted from artifacts in the component source.

I would not recommend the use of direct branches in the RMAP when accessing SVN and in CVS it would be impossible since the URI is the same for all branches (and HEAD). I think it's better to control the nightly/intergraion/release aspect of SCM's using the CQUERY branch/tag path. When accessing P2 repositories or similar, it's a different story of course, since the repository as a whole might be different for different types of builds.

HTH,
Thomas Hallgren


Henrik Lindberg wrote:
Hi, where did you read that versionOverride should be used to get things from different branches? I tried googling for your example, but without luck. That example is not in the book BTW.

I think it is better to handle branches with entries in the RMAP. We have several examples in the book that shows how to use this for different repositories (nightly, integration, release etc), and this naturally works well for SVN branches as well.

Controlling the routing in the RMAP with properties also makes it possible to use advisor nodes where this property is set - this to enable picking different components from different branches (instead of using a version override).

- henrik


Cailliau, Dieter wrote:
When talking about svn branches i read that one should use the versionOverride (1) in combination with the rmap (2) of this form (see below). This is very slow because it seems like buckminster visits all branches in order to find the best match, which is useless as i typically want one single branch (no need to do a find-best-match). So it's much faster to have a specific rmap for each branch this (3) (and leave the .cquery alone, without the advisor nodes).
Can you comment on this please? Is it okay to do so, or not?

(3) my faster branch-specific rmap

    <rm:searchPath name="bundle">
<rm:provider readerType="svn" componentTypes="osgi.bundle" mutable="false" source="true"> <rm:uri format="http://.../svn/software/branches/branchname/{0}?moduleAfterBranch";>
                <bc:propertyRef key="buckminster.component" />
            </rm:uri>
        </rm:provider>
    </rm:searchPath>



(1) the example from the documentation

<cq:advisorNode namePattern="com.mycompany.*" useTargetPlatform="false" versionOverride="raw:['branchname','branchname']/format(S):branchname,branchname"/>

(2)

    <rm:searchPath name="cspec">
<rm:provider readerType="svn" componentTypes="buckminster" mutable="false" source="true"> <rm:uri format="http://.../svn/software/trunk/{0}?moduleAfterBranch";>
                <bc:propertyRef key="buckminster.component" />
            </rm:uri>
            <rm:versionConverter type="branch">
<rm:transform fromPattern="^(.*)$" fromReplacement="$1" toPattern="^(.*)$" toReplacement="$1" />
            </rm:versionConverter>
        </rm:provider>
<rm:provider readerType="svn" componentTypes="buckminster" mutable="false" source="true"> <rm:uri format="http://.../svn/software/trunk/{0}?moduleAfterTag";>
                <bc:propertyRef key="buckminster.component" />
            </rm:uri>
            <rm:versionConverter type="tag">
<rm:transform fromPattern="^(.*)$" fromReplacement="$1" toPattern="^(.*)$" toReplacement="$1" />
            </rm:versionConverter>
        </rm:provider>
    </rm:searchPath>


DISCLAIMER:
Unless indicated otherwise, the information contained in this message is privileged and confidential, and is intended only for the use of the addressee(s) named above and others who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this message and/or attachments is strictly prohibited. The company accepts no liability for any damage caused by any virus transmitted by this email. Furthermore, the company does not warrant a proper and complete transmission of this information, nor does it accept liability for any delays. If you have received this message in error, please contact the sender and delete the message. Thank you.


Back to the top