Как я могу предотвратить перезапись последней версии файла предыдущей версией в SVN - PullRequest
0 голосов
/ 27 ноября 2011

У меня есть файл с именем «File1.txt», который находится в следующей папке

D: \ Dev \ File1 (v1) .txt

(v1) -> Обозначает номер версии

Когда файл готов к производству, у нас есть процесс выпуска, с помощью которого файл перемещается в Prod через v недель. Предположим, что производственная папка

D: \ Prod \ File1 (v1) .txt

Если мы сделаем какие-либо дальнейшие изменения в File1.txt в Dev, мы выпустим его в производство (через 2 недели)

Итак, теперь мы имеем статус папки Dev и Prod следующим образом
DEV: D: \ Dev \ File1 (v2) .txt -> Today

PROD: D: \ Prod \ File1 (v2) .txt -> 2 недели

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

это означает статус папки Dev и Prod следующим образом
DEV: D: \ Dev \ File1 (v3) .txt -> Today

PROD: D: \ Prod \ File1 (v3) .txt -> Today

Однако через 2 недели в рамках обычного процесса выпуска File (2) .txt переопределит аварийный выпуск File1 (v3) .txt

это означает состояние папки Dev и Prod следующим образом
В 2 НЕДЕЛИ ОТ СЕЙЧАС
===================
DEV: D: \ Dev \ File1 (v3) .txt

PROD: D: \ Prod \ File1 (v2) .txt

Как я могу предотвратить перезапись последней версии файла предыдущей версией?

1 Ответ

0 голосов
/ 27 ноября 2011

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

Если у вас есть исправление, оно применяется к обоим продуктам.и развитие.Кроме того, вы должны применить его к любой ветке кандидата на выпуск.Поскольку ваша ошибка в основном сводится к тому, что файл производственной ветви (v2) перезаписывает файл исправлений (v3), это просто означает, что вы не применили исправление к своему кандидату на выпуск.У вас есть два способа исправить это:

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