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