Я не сразу вижу решение, но было бы достаточно легко что-то написать. То, что я даю вам, не проверено на ошибки.
Сначала вы должны составить список каталогов, которые вы хотите исключить. Вызывается ~ / .svn-merge-exclude
#regexes to exclude
./helpfiles/
./deploy_scripts/
./models/customer_integration
Тогда вы бы написали еще один скрипт для возврата этих каталогов в ветке после того, как вы включили в них тернк.
#/usr/bin/bash
# I am assuming that you made the excludes based on the root directory
# so that relative paths will work
for dir in $(cat ~/.svn-merge-excludes) ; do
svn revert -R $dir
done
Это должно сработать. Здесь важна опция '-R' в revert, которая рекурсивно действует на каталог. Поэтому ваш рабочий процесс будет выглядеть примерно так.
# cd path/to/branch
# svn merge -r123:245 svn://svnserver.com/svn/trunk
# revert_excludes_from_branch.sh
Тогда вы бы обработали конфликты, а затем зафиксировали. Если вы используете Windows, то пакетный файл тоже будет работать, вы можете просто набрать команды возврата последовательно.