Немного предыстории, потому что это может быть немного запутанным: проект, над которым я работаю, - это проект, в котором большая часть кода одинакова, но есть некоторые файлы, которые меняются в зависимости от платформы, на которой мы развертываем. Для этого в корневой папке есть все «основные» файлы, которые не меняются, а затем для каждой платформы есть каталог с файлами, которые меняются. Так что есть baz/foo.c
и bar/foo.c
, потому что foo.c
меняется в зависимости от того, развернуто ли оно на baz
или bar
. Makefiles и тому подобное заставляют всю эту магию работать.
Вопрос в том, что я работаю над новой платформой (скажем, qux
), которая основана на bar
, поэтому я работал в ветке и вносил изменения в bar
каталог. Теперь я хочу переименовать этот каталог в qux
, но сохранить исходный bar
в транке, когда придет время слияния, потому что эта платформа все еще существует. Таким образом, моя конечная цель состоит в том, чтобы в стволе после слияния иметь baz
и bar
, как они были до моего вмешательства, и новую папку qux
с моими изменениями (которые в настоящее время находятся в ветви под папкой bar
и основаны на оригинальном bar
).
Есть ли простой способ сделать это? Если я переименую bar
в qux
в моей ветке, похоже, что он попытается удалить bar
, когда я объединю его обратно в транк, что я не хочу, чтобы произошло. Нужно ли делать что-то вроде создания новой папки qux
в моей ветке, копировать в нее файлы из bar
, а затем возвращать bar
обратно в исходное состояние? Или есть лучший способ сделать это?
Редактировать: Для ясности, в папке bar
уже есть изменения, которые необходимо отменить, если я скопирую файлы в новую папку.