[
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.