如何配置 CruiseControl 项目以从 Sourcesafe 获取多个项目

发布于 2024-08-17 19:28:01 字数 230 浏览 6 评论 0原文

我需要在巡航控制中配置我的项目,以便当它从 SourceSafe 获取源代码时,它还会从 SourceSafe 获取另一个项目的代码。这可能吗?

我需要这个,因为我正在尝试配置巡航控制来构建一个包含来自不同 SourceSafe 位置的多个项目的解决方案。我只能指定一个项目从sourcesafe“获取”,因此当cruisecontrol 构建解决方案时,我遇到了msbuild 失败。

干杯

科幻

I need to configure my project in cruise-control so that when it gets the source code from SourceSafe, it also gets the code for another project from SourceSafe. Is this possible?

I need this because I am trying to configure cruise control to build a solution which contains multiple projects from different SourceSafe locations. I can only specify one project to 'get' from sourcesafe and so I am getting an msbuild failure when cruisecontrol builds the solution.

Cheers

SciFi

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葬心 2024-08-24 19:28:02

您需要在 CruiseControl 中使用该标签。

我没有使用 SSafe,但这是我从 Seapine 的 Surround 中提取多个项目的示例:

<sourcecontrol type="multi">
            <sourceControls>
                <surround>
                    <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable>
                    <serverlogin>user:pw</serverlogin>
                    <branch>WindowsApps</branch>
                    <repository>WindowsApps/Project1</repository>
                    <workingDirectory>d:\AutomatedBuilds\Project1</workingDirectory>
                    <recursive>1</recursive>
                </surround>
                <surround>
                    <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable>
                    <serverconnect>10.1.1.42:4900</serverconnect>
                    <serverlogin> >user:pw </serverlogin>
                    <branch>WindowsApps</branch>
                    <repository>WindowsApps/Project2</repository>
                    <workingDirectory>d:\AUtomatedBuilds\Project2</workingDirectory>
                    <recursive>1</recursive>
                </surround>
                <surround>
                    <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable>
                    <serverconnect>10.1.1.42:4900</serverconnect>
                    <serverlogin> >user:pw </serverlogin>
                    <branch>WindowsApps</branch>
                    <repository>WindowsApps/Project3</repository>
                    <workingDirectory>d:\AutomatedBuilds\Project3</workingDirectory>
                    <recursive>1</recursive>
                </surround>

You need to use the tag in CruiseControl.

I'm not using SSafe, but here's an example of me pulling multiple projects from Seapine's Surround:

<sourcecontrol type="multi">
            <sourceControls>
                <surround>
                    <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable>
                    <serverlogin>user:pw</serverlogin>
                    <branch>WindowsApps</branch>
                    <repository>WindowsApps/Project1</repository>
                    <workingDirectory>d:\AutomatedBuilds\Project1</workingDirectory>
                    <recursive>1</recursive>
                </surround>
                <surround>
                    <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable>
                    <serverconnect>10.1.1.42:4900</serverconnect>
                    <serverlogin> >user:pw </serverlogin>
                    <branch>WindowsApps</branch>
                    <repository>WindowsApps/Project2</repository>
                    <workingDirectory>d:\AUtomatedBuilds\Project2</workingDirectory>
                    <recursive>1</recursive>
                </surround>
                <surround>
                    <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable>
                    <serverconnect>10.1.1.42:4900</serverconnect>
                    <serverlogin> >user:pw </serverlogin>
                    <branch>WindowsApps</branch>
                    <repository>WindowsApps/Project3</repository>
                    <workingDirectory>d:\AutomatedBuilds\Project3</workingDirectory>
                    <recursive>1</recursive>
                </surround>
友谊不毕业 2024-08-24 19:28:02

我们面临着完全相同的问题。

正如 taylonr 指出的 可以从源代码控制监视多个子树。但是您需要将源代码管理中存储库位置的信息放入 CCNET 配置中。

您可以解析解决方案文件、提取文件路径并生成配置文件。但即便如此,您也会遇到新问题:

  1. 如果解决方案文件包含相对路径,您需要将它们转换为绝对路径。
  2. 解决方案文件中的路径信息引用本地目录和文件。您需要将其映射回源代码管理中的存储库结构。

正是出于这个原因,我们决定放弃解决方案支持。每个CCNET项目都引用一个VS项目。 VS 项目中的每个文件都需要放入项目的目录/存储库子树中。那么这棵树就可以很容易地被CCNET监控。

We're facing exactly the same problem.

As taylonr pointed out it is possible to monitor multiple subtrees from source control. But you need to put the information on the repository locations in source control into CCNET configuration.

You might parse the solution file, extract the file paths, and generate the configuration file. But even then you would encounter new problems:

  1. If the solution file contains relative paths, you would need to transform these into absolute paths.
  2. The path information in the solution file references local directories and files. You would need to map this back to the repository structure in source control.

For this very reason we decided to drop solution support. Each CCNET project refers to a VS project. Each file inside a VS project needs to be put inside the project's directory/repository subtree. This tree can easily be monitored by CCNET then.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文