Черепаха svn всегда объединяет 45 дополнительных файлов
Когда мы делаем разветвление и слияние с svn, у нас всегда происходит то же самое.
Мы получаем последнюю копию ствола.
Создайте ветвь и переключатель.
Сделайте небольшое изменение в одном файле в ветке.
Объединить ветку обратно в магистраль.
В этот момент у нас будет наш один файл, который нужно добавить, плюс те же 45 дополнительных файлов. Это происходит на каждой отдельной ветки и слияния, а также всегда на 45 дополнительных файлов. Я не знаю, как исправить эту проблему, но ее крайне раздражает.
Кто-нибудь когда-либо видел это раньше?
UPDATE: когда я выполняю фиксацию, файлы, которые я фактически изменил, имеют свой статус текста как измененный, а их статус свойства пустым. "45 файлов" - это все текстовое состояние, состояние свойства изменено.
Ответы
Ответ 1
Они, вероятно, являются свойствами mergeinfo. С версией 1.5 SVN это было довольно агрессивно с установкой свойства mergeinfo, и по мере слияния эти свойства обновляются, требуя фиксации для них.
Ответ заключается в том, чтобы удалить из них свойство mergeinfo. Также обновите до версии 1.6, которая имеет лучшую поддержку mergeinfo (т.е. Записывает меньше этих свойств).
Я должен сказать, что этот файл не будет иметь видимых изменений, если вы посмотрите на различия. Очевидно, что если их содержимое изменено, то какие изменения могут дать вам ключ (например, это автоматический инструмент, который пишет дополнительные комментарии, изменяя макет или добавляя строки сверху или снизу).
EDIT: см. этот пост в блоге для получения дополнительной информации о проблемах слияния SVN и исправлениях.
Ответ 2
Скорее всего, это свойства mergeinfo, о которых упоминалось. Вероятно, вы захотите очистить свойства mergeinfo от файлов и папок в вашем багажнике. Командный файл удобен для этого, так как вам может понадобиться сделать это когда-нибудь снова в будущем. Что-то вроде следующего:
echo Removing Nested Merge Information...
svn propdel svn:mergeinfo subfolder1 --depth=infinity
svn propdel svn:mergeinfo subfolder2 --depth=infinity
svn propget svn:mergeinfo --depth=infinity trunk
Затем вернитесь к соединительной линии после того, как вы запустили пакетный файл на рабочей копии соединительной линии.
Кроме того, переименование и перемещение папок является распространенным способом создания свойства mergeinfo в папке/файле в репозитории subversion. svn1.6 не так щедрее о добавлении свойства mergeinfo для различных действий.
Ответ 3
Прочтите подробную статью на http://www.collab.net/community/subversion/articles/merge-info.html
Это долго, но стоит. Обратите внимание, в частности, на предложения в разделе "Разделение мысли" в конце, которые включают в себя подсказки для уменьшения шума mergeinfo.
Кроме того, вместо использования svn propdel для очистки нежелательной mergeinfo, рассмотрите возможность использования svn merge с параметром -record-only.
Ответ 4
Лично я считаю, что mergeinfo вызывает больше проблем, чем решает, по крайней мере, с текущим состоянием инструментария. Как только он прозрачный совершит, возможно, это будет полезно использовать.
Вы можете безопасно удалить свойства mergeinfo. Однако имейте в виду, что вам нужно будет вручную отслеживать, какие версии объединяются для повторной интеграции.