Как избежать большого количества SVN: MergeInfo при объединении ствола к функциональной ветке в SVN

StackOverflow https://stackoverflow.com/questions/3785743

  •  05-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь сохранить функцию ветвника актуальна, объединяя багажник в ветку. Проблема в том, что около 2000 файлов, которые были там, когда была создана ветвь, и это осталось нетронутым как на ветке, так и на багажнике обновляется только, кроме SVN: MergeInfo. Проект довольно велик в масштабе, и влияние на нашу историю SVN настолько велик, что оно делает историю слияния слияния. сам.

я пытался

  • Используя одну и ту же версию клиента, как REPO (1.5.2)
  • Использование моей текущей клиентской версии 1.6.10
  • Объединение ряда изменений, от филиала начать до головы

Я должен упомянуть, что я внимательно смотрел на документацию SVN при попытке этого. Таким образом, никакие правила не должны быть нарушены (например, нет коммутируемых поддель, чистая локальная копия и т. Д.)

Это было полезно?

Решение

Принципиально для очистки репозитория необходимо выполнить следующее на вашу интеграционную ветку, чтобы изменить фанаты оттуда: -

C:> SVN Propdel SVN: MergeInfo -R

Т.е. вы делаете это в багажнике, так что будущий релиз и филиалы не загрязнены. При объединении существующих ветвей вы можете игнорировать все SVN: Merginfo изменяется под «root root», поскольку они будут унаследоваться в любом случае.

Я написал блог на этом вопросе некоторое время назад, который охватывает его более подробно: -

Уборка SVN: MergeInfo Chreampingshttp://chrisoldwood.blogspot.com/2010/03/Cleaning-up-svnmergeinfo-up-svnmergeinfo-droppings.html.

Другие советы

SVN добавит свойства MergeInfo для отдельных файлов, если он считает, что их история слияния отличается от их родительского каталога. Как только это произошло, каждый Последующее слияние, независимо от того, насколько безосновательно приведет к обновлению этих свойств MergeInfo. Я нашел первую половину эта статья полезно понять, почему это происходит.

Если вы хотите избежать этих постоянных изменений MergeInfo, вам придется «приводить» существующие свойства MergeInfo на вашем филиале. Самый безопасный, но самый трудный, способ бежать svn propget -R svn:mergeinfo На ветке, а затем изучите различия между Mergeinfo на отдельных файлах и Mergeinfo их родительского каталога. Вы можете обнаружить, что различия небольшие, и что «SVN объединение», в котором будет достаточно небольшого количества индивидуальных изменений, чтобы вызвать выделение MergeInfo, заставляя все отдельные свойства MergeInfo исчезнуть.

Если вы уверены, что вы понимаете, как работает MergeInfo, вы также можете просто уйти и вручную редактировать или удалить MergeInfo из оскорбительных файлов.

Если у вас есть такие MergeInfo на файлах, которые на самом деле не изменили вас или кого-то еще, слияют не из радового копирования корня ... Единственное решение для удаления SVN: MergeInfo из файлов, потому что единственное расположение находится в работе Скопируйте root никуда. И еще один момент, который вы должны обновить репозиторий до 1.6.x ..

Как я не уверен в слепых svn:merge-info Удаление недвижимости, я реализовал инструмент для анализа текущей ситуации на рабочей копии и удалить как можно больше пересмотра слияния от недвижимости Non-Root Merge-Info. После дополнительных чеков и контроля человека могут быть приняты изменения в рабочей копии.

Вот: SVN-Clean-Mergeinfo

Не стесняйтесь сообщать о любом вопросе о своем использовании, чтобы его улучшились.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top