SVN 1.7 и более поздние версии
Это должно быть исправлено в SVN 1.7. От примечания к выпуску :
Слияния больше не записывают информацию слияния (описывающую слияние) на поддеревьях (которые имеют свою явную информацию слияния), если на поддерево не повлияло слияние. Это должно значительно уменьшить количество ложных svn:mergeinfo
изменений свойств для пользователей, у которых есть большое количество поддеревьев с явным mergeinfo.
SVN до 1,7
Что происходит, когда файл / папка имеет явную mergeinfo, каждый
последующее слияние с веткой обновит эту информацию слияния, даже если
Файл / папка не связаны. Это раздражает, так как вводит все больше и больше
беспорядок в списке изменений для каждого слияния.
Чтобы избежать этого, нужно только слить в «корневую» папку ветки, например
"/Branches/maintenance2.x". Ни один из файлов или папок ниже
"/branches/maintenance2.x" должен получить mergeinfo. Следуйте совету по слиянию в книге SVN .
К сожалению, даже если вы сливаетесь только в «корневую» папку ветки,
пустые svn:mergeinfo
свойства могут по-прежнему появляться в отдельных файлах и
папки, когда они копируются, чтобы указать, что они не получили
такие же, как их братья и сестры.
Вероятно, безопасно удалить лишнее поддерево mergeinfo. Один из способов сделать это - выполнить рекурсивное удаление свойства svn:mergeinfo
для каждого файла и папки в корне проекта. (Но сохраняйте mergeinfo в самой корневой папке!)
Кроме того, вы можете обновить до Subversion 1.6 . Я проверил, что это решает эту проблему. Кажется, он даже удаляет лишнюю mergeinfo, добавленную более ранними версиями, для вас.
Судя по комментариям, в SVN 1.6 все еще есть случаи, когда появляется лишнее поддерево mergeinfo. Но я не смог воспроизвести это.