Как настроить проект CruiseControl для получения нескольких проектов из sourcesafe - PullRequest
2 голосов
/ 15 января 2010

Мне нужно настроить свой проект в круиз-контроле, чтобы при получении исходного кода от SourceSafe он также получал код для другого проекта от SourceSafe. Возможно ли это?

Мне это нужно, потому что я пытаюсь настроить круиз-контроль для создания решения, содержащего несколько проектов из разных мест SourceSafe. Я могу указать только один проект, который нужно «получить» из sourcesafe, и поэтому я получаю ошибку msbuild, когда cruisecontrol создает решение.

Приветствия

SciFi

Ответы [ 2 ]

3 голосов
/ 15 января 2010

Вам необходимо использовать тег в 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>
0 голосов
/ 15 января 2010

Мы сталкиваемся с точно такой же проблемой.

Как указал taylonr , можно контролировать несколько поддеревьев из управления источником. Но вам нужно поместить информацию о расположениях репозитория в системе контроля версий в конфигурацию CCNET.

Вы можете проанализировать файл решения, извлечь пути к файлам и сгенерировать файл конфигурации. Но даже тогда вы столкнетесь с новыми проблемами:

  1. Если файл решения содержит относительные пути, вам необходимо преобразовать их в абсолютные пути.
  2. Информация о пути в файле решения ссылается на локальные каталоги и файлы. Вам необходимо отобразить это обратно на структуру хранилища в системе контроля версий.

Именно по этой причине мы решили отказаться от поддержки решения. Каждый проект CCNET относится к проекту VS. Каждый файл внутри проекта VS должен быть помещен в поддерево каталога / репозитория проекта. Это дерево легко может быть отслежено CCNET.

...