Удаление файлов при ручном слиянии в SVN - PullRequest
2 голосов
/ 09 ноября 2010

Слияние SVN (ветвь к стволу) доставило мне массу неприятностей.Теперь я не эксперт в этом, и это является частью проблемы (опять же, я не должен быть экспертом в этом ... так как это главное, это должно облегчить мою жизнь).В любом случае, у меня быстро развивается фреймворк, и папки / файлы довольно часто удаляются / переименовываются.Удаление / переименование само по себе не является интуитивно понятным в SVN (в любом случае через черепаху), но я позволю этому скользить.

Проблема возникает при слиянии.Если я удалил / переименовал файл или каталог, у меня возникли конфликты деревьев.Иногда при слиянии не удается добавить файл в ствол, который был добавлен в ветку, и продолжает сообщать мне, что слияние прошло успешно (и файлы не добавляются).Сейчас я прибегнул к ручному слиянию этих проблемных веток.

Слияние вручную очень просто, за исключением случаев, когда происходит переименование или удаление.Я также буду использовать переименование как удаление, потому что в конце концов это именно то, что есть на самом деле.Есть ли способ автоматического удаления папок и файлов, которые остались в стволе, когда я выполняю слияние вручную?

Вот как я выполняю слияние вручную

  1. Экспорт всех измененных файлов из ветви
  2. Переключение на транк, перезапись всех существующих файлов, покадобавление также новых папок / файлов
  3. Commit

Повторяю, сложный способ удаления переименованных / удаленных файлов / папок - это сравнение.Есть ли более простой способ?

Спасибо!

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

1 Ответ

0 голосов
/ 10 ноября 2010

Когда я выполняю такой вид слияния вручную (например, при повторном импорте источников из какого-либо внешнего проекта, когда этот проект не имеет общедоступного контроля версий), я обычно пишу скрипт, который выполняет сравнение по дереву. Он перечислит все файлы в обоих деревьях и сравнит эти списки. Один из таких скриптов, который поставляется с Subversion, это svn_load_dirs .

Что касается вашего наблюдения, что автоматическое объединение дополнений и удалений не выполняется: если вы хотите получить помощь по этому вопросу, пожалуйста, опубликуйте это как отдельный вопрос. Возможно, вы делаете что-то не так - это должно сработать.

...