Можно ли отклоняться от структуры ствола / тегов / ветвей в SVN?

У нас есть проекты в SVN, и я пытаюсь повысить уровень автоматизации в нашем процессе выпуска.

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

Сейчас мы используем Jenkins, и я настроил наши проекты для встраивания версии SVN и номера сборки Jenkins в результирующие EXE и DLL и т. Д. Я пытаюсь пойти по пути использования ветвей выпуска, а не тегов. Так что в идеальном мире ветка выпуска никогда не будет обновляться, но мы позволим себе применить незначительные исправления ошибок.

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

Итак, мой вопрос в том, где мне разместить эти ветки выпуска:

  1. В branches - Но тогда они просто загромождаются ветками разработки и т. Д.
  2. В tags - Потому что они будут неизменными в хороший день, но это нарушает условности? Смущаете новых сотрудников?
  3. В новом каталоге releases - поскольку это новое соглашение, оно будет предупреждать людей о его немного нестандартном использовании.

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


person Erik    schedule 22.12.2014    source источник


Ответы (1)


  1. В ветках - но тогда они просто загромождены ветками разработки и т. Д.

Нет, я бы не стал этого делать. Особенно, если вы знаете, что в конечном итоге их будет довольно много, я бы отделил выпуски от веток разработки (также во избежание путаницы для новых пользователей).

  1. В тегах - потому что они будут неизменными в хороший день, но это нарушает условности? Смущаете новых сотрудников?

ИМХО, это второй лучший вариант.

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

Вот куда я бы их положил. Почему бы не создать новый тег для каждого исправления ошибки (точечный выпуск, например, 2.5.1)? Новому сотруднику в любом случае необходимо изучить структуры / передовой опыт / соглашения о коде в вашей команде разработчиков, поэтому сказать «releases/ для выпусков, включая мелкие исправления» не составит труда.

Будет ли добавление нестандартного каталога на том же уровне, что и ствол, доставить мне неприятности с другими инструментами?

Не знаю.

person Michael Schlottke-Lakemper    schedule 22.12.2014