Итак, у меня есть проблема, которая вызывает у меня много горя в Subverion. Я работаю в филиале, который должен оставаться активным до тех пор, пока мой набор функций не завершит разработку до повторной интеграции. К сожалению, что-то, что я завершил, теперь считается бизнесом "критически важным", и они хотят, чтобы я вишневый выбирал эту функциональность из ветки и вставлял ее в багажник, чтобы его можно было получить от QA.
Проблема заключается в том, что я разработал функциональность в отдельном каталоге, который я создал, работая над чем-то другим. Поэтому, чтобы объединить оставшийся код, который требуется моей функциональности, мне сначала нужно создать созданный ранее каталог.
Вот изменения, которые мне нужно выдернуть:
Rev 20
A./project_foo
A./project_foo/not_required_file.txt
Rev 24
A./project_foo/required_file.txt
Итак, чтобы получить это в багажнике, я должен был сделать следующее:
svn merge -r20: 21 → это возвращает мне каталог, а также файл not_required_file.txt
svn revert project_foo/not_required_file.txt → избавиться от файла, который мне не нужен
svn merge -r24: 25 → это получает мне файл, который мне нужен,
Что сработало и достало материал в туловище, что я хотел, НО, когда я был полностью закончен и запускал svn merge -reintegrate, я (очевидно) не получил not_required_file.txt из Revision 20 и, таким образом, столкнулся с конфликтами деревьев на нем (из дальнейших изменений, которые я сделал позже).
Итак, я ищу некоторые рекомендации о том, что делать в этих ситуациях.
- Есть ли способ слияния только с конкретными изменениями, которые я хочу получить от конкретной ревизии?
- Есть ли способ захватить изменения, которые я умышленно пропустил, когда я снова интегрирую всю ветку?
- Могу ли я создать структуру каталогов, которая мне нужна в соединительной линии, а затем слить только изменения файла?
- Могу ли я создать другую ветку, переместить туда необходимые изменения, реинтегрировать эту ветку, а затем вытащить из соединительной линии в исходную ветвь?
Спасибо.