Вопрос

Мы стараемся сохранить свойство svn:mergeinfo только в папке корневой ветки.Однако мы продолжаем видеть, как он проникает в подпапки.Нам удалось выявить некоторые возможные причины:

  1. Перемещение папки в репо-браузере
  2. Перемещение и/или переименование пакетов в IntelliJ
  3. Использование старых клиентов SVN

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

Мы используем инструменты IntelliJ 8 (скоро 9), Ankh, TortoiseSVN и SlikSvn.

Это было полезно?

Решение 2

Мы написали перехватчик/триггер SVN, который просто отклоняет коммиты в svn:properties на немагистральных объектах.Мы никогда не оглядывались назад.

Другие советы

К сожалению, старые клиенты svn просто делают это, и любые инструменты, основанные на этих старых версиях svn, также не работают.Единственный способ решить эту проблему — удалить созданные записи svn:mergeinfo до их фиксации.Поскольку большинство людей не знают, что они созданы, то единственный реальный способ обеспечить это — это перехват перед фиксацией или просто сделать:

svn propdel --recursive svn:mergeinfo $ROOT/*

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

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

На основе другого ответа на этот вопрос, краткое объяснение причины проблемы.Когда вы перемещаете или удаляете рабочую копию, клиенты svn старше 1.5.5 создают ложную запись svn:mergeinfo.Это решено в SVN 1.5.5.

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

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

Лучший способ — выполнить слияние на основном уровне, а при необходимости выборочно применить его, отменить изменения, которые вы не хотите объединять, а затем зафиксировать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top