Наша (очень устаревшая) кодовая база имеет пользовательский интерфейс ActiveX Client, который требует создания и передачи двоичных файлов в SVN.NAnt + svn diff - ignore merge commits
Мы используем соединительную линию, ветку функций и помеченные паттерны релизов релизов.
Я написал сценарий NAnt для компиляции пакетов релизов путем определения изменений фиксации создания ветвей и тегов и использования svn diff
, чтобы перечислить изменения в бинарниках пользовательского интерфейса между ними - они затем экспортируются из репозитория для генерации выпуска пакет:
<exec program="svn.exe"
commandline="diff svn://hostname/Project/branches/1.2/Client -r 1234:5678 --summarize --xml"
output="c:\Temp\ClientComponents.xml" />
<xmllist file="c:\Temp\ClientComponents.xml"
property="ClientComponents"
delim=","
xpath="/diff/paths/path[@kind = 'file' and @item != 'deleted']" />
<foreach item="String" in="${ClientComponents}" delim="," property="source">
<!-- svn export -->
</foreach>
выход из svn diff
выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<diff>
<paths>
<path
item="modified"
props="none"
kind="file">svn://hostname/project/branches/1.2/Client/Component1.cab</path>
</paths>
</diff>
Это работало отлично до сих пор - как мы теперь имеем 2 параллельных ветвей функций.
Первая ветвь функции (например, 1.1) внесла изменения в пользовательский интерфейс клиента, который был правильно упакован в версии 1.1.1.
Это изменение было слито вперед во вторую ветвь (например, 1,2), и когда я теперь пытаюсь пакет 1.2.1 включают изменения клиентского интерфейса, которые были слиты с 1,1
Есть ли способ, чтобы исключить объединенные изменения в команде svn diff
?