В сценарии предварительной фиксации возможно (и если да, то как) определить коммиты, вытекающие из svn merge
?
svnlook changed ...
показывает файлы, которые изменились, но не различает слияния и ручные изменения.
В идеале я также хотел бы провести различие между стандартом merge
и merge --reintegrate
.
Справочная информация:
Я изучаю возможность использования хуков предварительной фиксации для реализации политик использования SVN для нашего проекта.
Одна из политик гласит, что некоторые каталоги (например, /trunk
) не следует изменять напрямую, а изменять только путем реинтеграции ветвей функций. Поэтому сценарий предварительной фиксации отклоняет все изменения, внесенные в эти каталоги, кроме реинтеграций ветвей.
Есть идеи?
Обновление:
Я исследовал команду svnlook
, и самое близкое, что у меня есть, - это обнаружение и анализ изменений в каталоге svn:mergeinfo
. Этот подход имеет некоторый недостаток:
svnlook
может регистрировать изменение свойств, но не то, какое свойство было изменено. (необходим дифференциал с proplist
предыдущей ревизии)
- Проверяя изменения в
svn:mergeinfo
, можно обнаружить, что svn merge
был запущен. Однако нет способа определить, являются ли коммиты просто результатом слияния. Изменения, сделанные вручную после слияния, останутся незамеченными. (связанный пост: Различать дерево транзакций по другому пути / ревизии )