Какая схема управления версиями будет лучше? Проект с тестами - PullRequest
2 голосов
/ 15 июня 2009

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

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

альтернативный текст http://img31.imageshack.us/img31/2765/projectlayout2.jpg

Папка lib в каждой папке проекта содержит скомпилированные двоичные файлы, которые должен компилировать проект. Таким образом, папка ProjectA.Examples.Lib будет содержать последнюю стабильную скомпилированную версию ProjectA.

Какой макет, на ваш взгляд, будет лучше?

Преимущество, которое я вижу в 2) перед 1), заключается в том, что тесты включены в ProjectA, так что вы не можете развернуть ProjectA без тестов, и если вы разветвляете или помечаете тесты, продолжайте его.

РЕДАКТИРОВАТЬ Я отредактировал картинку, чтобы показать то, что я имел в виду в первую очередь. Спасибо @Esko Luontola за то, что указал на это.

Ответы [ 3 ]

5 голосов
/ 15 июня 2009

Поскольку тесты должны быть версионированы вместе с кодом, с которым они работают, (2) имеет больше смысла в imo. Хранение их вместе в одной иерархии уменьшает вероятность возникновения проблем со старостью и создает конфликты на ранних этапах цикла разработки.

<Ч />

Примечание: ОП пояснил, что каталог tests действительно должен находиться в trunk.

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

Исходный код и тесты должны быть всегда вместе, оба под транком. Таким образом, расположение хранилища в SVN будет выглядеть следующим образом:

  • ProjectA
    • филиалы
    • метка
    • Ствол
      • 1012 * ЦСИ *
      • тест
      • Lib
  • PROJECTA-Примеры
    • филиалы
    • метка
    • Ствол
      • ЦСИ
      • Lib

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

  • ProjectA
    • филиалы
    • метка
    • Ствол
    • тест
    • Lib
    • примеры

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

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

Вы можете попробовать что-то вроде:

  • Проект
    • ProjectA
      • метка
      • ветви * * +1010
      • Ствол
        • Lib
        • документ
        • 1018 * ЦСИ *
        • Тесты

Эта организация хранит весь проект, включая его тесты и образцы (которые фактически являются частью проекта в целом), в едином версионном дереве в системе контроля версий.

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