Обработка ссылок на проекты при использовании контроля версий с несколькими проектами - PullRequest
0 голосов
/ 17 июня 2009

Скажем, у меня есть макет хранилища, подобный следующему:

 |Root
   |->CommonLib
   |->ProjectA.PartA
        |->trunk
            |->lib
            |->src
            //etc
   |->ProjectA.PartB
        |->trunk
            |->lib
            |->src
   //About four more projects.

Теперь я разделил их так, чтобы я мог работать с каждым отдельным разделом и разветвлять их, если мне нужно.

ProjectA.PartA использует ProjectA.PartB в качестве ссылки.

До того, как я структурировал это таким образом, у меня были все стволы проектов в одной папке src, и я просто перетащил эту папку вниз, а затем добавил проекты в решение и просто добавил ссылки на проекты между ними.

Это работало нормально, когда все они находились в одной папке, но я чувствую, что это, вероятно, не очень хорошая практика, и это заставляет вас иметь одинаковую структуру извлечения папок или разрыв зависимостей.

Мои мысли о том, как создать каждый проект и сохранить двоичные файлы в папке CommonLib в корневом каталоге, а затем просто использовать svn: externals для каждого проекта, чтобы вывести его зависимости из папки CommonLib в его папку lib и добавить ссылку, которая скорее тогда сам проект.

Будет ли вышеуказанное решение лучше, чем добавление ссылок на проекты?

Какова общая практика при наличии внутренних ссылок на проект?

Если они все являются частью одной и той же "цели", следует ли мне просто устанавливать внешние параметры для всех папок проекта, чтобы вывести зависимости как источник?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 июня 2009

Копии SVN дешевы, а слияние SVN легко. Поэтому я бы просто использовал одно корневое решение, и проекты должны ссылаться друг на друга. Разветвите все это, если вам нужно, затем заново интегрируйте.

1 голос
/ 17 июня 2009

Обычно я бы ссылался на проект из каждого решения, используя внешние элементы, а не саму библиотеку. В этом случае очень важно иметь модульные тесты в каждом проекте для регрессионного тестирования.

Также хорошо (и, вероятно, безопаснее) хранить двоичные файлы и ссылаться на них с внешними файлами. Если бы я так делал, я бы пометил каждую версию двоичного файла зависимости и ссылался бы на это. Если бы я хотел обновить, я бы изменил внешний тег на использование нового тега - это позволит вам более безопасно обновить библиотеку.

EDIT: Я только что понял, что вы разделились на 2 части одного и того же проекта - мой ответ выше для общих библиотек в нескольких проектах. Я бы держал их в том же сундуке, как сказал Уайетт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...