2013-07-09 2 views
1

Наша (очень устаревшая) кодовая база имеет пользовательский интерфейс 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?

ответ

Смежные вопросы