Говоря SVN (черепаха), что определенная ветвь уже была объединена - PullRequest
0 голосов
/ 10 марта 2020

В проекте, над которым я работаю, у нас есть проблема с ветвлением / слиянием.

Для упрощения у нас есть ветвь A (принадлежит нашему клиенту) и ветвь B (принадлежит нам) и мы периодически синхронизируем A с B, поэтому все новые изменения, внесенные в B, переносятся в A, когда клиент говорит об этом (когда клиент подтверждает, что код в ветви B был должным образом протестирован, выполнение работает правильно, и т. д. c).

Проблема в том, что иногда слияние выполняется неправильно, поэтому SVN не знает, какие коммиты уже слиты, а какие нет. Изменения и способы разрешения конфликтов правильны, функциональны, но SVN этого не знает. Поэтому, если вы попытаетесь объединить все ревизии из двух уже слитых веток, все ранее разрешенные конфликты появятся снова. Если я укажу опцию «включить слитые ревизии», в журнале SVN некоторые «коммиты слияния» не развернутся, чтобы показать все коммиты, которые включены в такие слияния. Вот откуда я знаю, что эти метаданные были потеряны.

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

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

Итак, как мы можем сказать SVN: «Привет, все изменения из B уже были объединены, и конфликты были решены в A, несмотря на то, что вы думаете "?

ПРИМЕЧАНИЕ: Мы используем Tornise SVN.

1 Ответ

2 голосов
/ 10 марта 2020

На третьей странице мастера слияния есть флажок «Только записывать слияние (блокировать ревизии от слияния)». Проверь это. Результатом будет просто написать ревизию в svn:mergeinfo свойство.

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