Что вы развертываете на клиентских ветках SVN или тегах - PullRequest
2 голосов
/ 09 января 2009

Не так давно мы использовали Microsoft VSS в качестве инструмента контроля версий и использовали для создания ветки нашего кода после окончания каждого выпуска и развертывания этого на наших клиентах.

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

SVN на самом деле рекомендует «теги» для этой цели, но также рекомендует не вносить никаких изменений, поэтому где мы будем делать отвратительные исправления ошибок, которые появятся в этом выпуске?

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

Что делают другие люди?

Ответы [ 6 ]

6 голосов
/ 09 января 2009
  1. когда вы делаете релиз, создайте для него тег. Например, выпуск-1.1.0
  2. если у вас есть исправление / изменение для этого выпуска, сначала создайте ветку из этого тега, это «ветвь стабилизации», обычно называемая «.x» в качестве номера последней версии. Например, стабилизация-1.1.х
  3. объединить исправление / перейти от магистрали к ветви стабилизации
  4. зафиксировать изменение в ветви стабилизации
  5. как только вы почувствуете, что в стабильной ветке достаточно исправлений / изменений, чтобы оправдать новую версию, создайте тег из ветви стабилизации, например, release-1.1.1
  6. продолжайте работать с транком, объединяйте исправления ошибок с стабильной веткой
  7. повтор 3-6
5 голосов
/ 09 января 2009

В Subversion это одно и то же - они реализованы одинаково, а результаты одинаковы (кроме иерархии репо). Это просто ссылки на конкретную ревизию хранилища. Никаких реальных копий не сделано. Когда вы начинаете работать над веткой (в реальном смысле этого слова), вы используете новую копию этого ресурса в новом месте.

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

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

(тег / ветвь созданы командой cp)

2 голосов
/ 10 января 2009

Создайте тег на определенной ревизии строки кода (например, транк), и ВСЕГДА делайте релизы из ваших тегов. Теги в svn, хотя и не применяются самим svn, предназначены для создания снимков и опорных точек. Воспользуйтесь этим неявным понятием и выпускайте только сборку, созданную из тега, который, как вы и другие, знаете, соответствует конкретному выпуску.

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

2 голосов
/ 09 января 2009

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

0 голосов
/ 09 января 2009

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

Как только все освоятся с SVN, и я смогу познакомить хотя бы еще одного человека, знакомого со слиянием, я собираюсь установить «живую» ветку, в которую могут быть объединены все одобренные коммиты для производства.

Теги хороши тем, что вы можете помещать имена в цикл разработки, «бета», «альфа», «релиз-кандидат 1» и т. Д. Но самое важное, что вам нужно, - это хорошая ветка, на которую вы можете положиться для производственного использования. , Тэги облегчают определение вех.

0 голосов
/ 09 января 2009

Теги в ветке релиза.

...