svn слияние с svn: externals вызывает массовое добавление свойств svn: merge-info - любое решение? - PullRequest
3 голосов
/ 18 ноября 2011

Если у вас есть каталог с внешней ссылкой svn: (который мы широко используем в работе), то всякий раз, когда вы объединяете этот каталог между ветвями, каждый файл в каталоге получает новое свойство svn: merge-info.

Я предполагаю, что это потому, что внешняя ссылка не изменяется при слиянии, поэтому svn считает это своим собственным поддеревом (связано, но не с той же проблемой, что и Почему svn объединяет ветку сотсутствие изменений приводит к тому, что нетронутые файлы изменяют свойство svn: mergeinfo ).

Это приводит к тому, что фактическое изменение скрывается во всех изменениях свойства слияния, что делает набор изменений и большим, и почти нечитаемым.(У нас есть ветвь с достаточной историей слияния и внешними данными, что слияние с изменением в одну строку может привести к разнице в 500 КБ.)внешние ссылки перед совершением.Это предотвращает использование --reintegrate и означает, что мы не можем отслеживать реальные слияния поддеревьев, если они происходят.

У кого-нибудь есть какие-нибудь лучшие решения?

1 Ответ

3 голосов
/ 19 ноября 2011

svn: merge-info не предназначена для чтения, но я понимаю вашу проблему.

Одним из решений может быть обновление до 1.7 (как сервера, так и клиента). В 1.7 проделана некоторая работа над информацией о слиянии, которая может вам помочь.

Звучит так, как будто вы уже понимаете информацию слияния, но в любом случае здесь есть дополнительная информация.

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

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

Я обнаружил, что некоторые версии svn не работают должным образом при выполнении слияний. 1.6.6 (который есть в Ubuntu 10.04) не очень хорошо работает при частичном слиянии.

...