Слияние переименованной папки из ветви SVN обратно в транк, сохраняя оригинальную именованную папку в транке - PullRequest
0 голосов
/ 17 июля 2010

Немного предыстории, потому что это может быть немного запутанным: проект, над которым я работаю, - это проект, в котором большая часть кода одинакова, но есть некоторые файлы, которые меняются в зависимости от платформы, на которой мы развертываем. Для этого в корневой папке есть все «основные» файлы, которые не меняются, а затем для каждой платформы есть каталог с файлами, которые меняются. Так что есть 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 уже есть изменения, которые необходимо отменить, если я скопирую файлы в новую папку.

Ответы [ 2 ]

1 голос
/ 17 июля 2010

Поскольку bar не уходит в багажник, не переименовывайте его.Оставьте все как есть и создайте новую папку qux, затем скопируйте в нее содержимое папки bar.Копирование ничего не удалит из bar.Измените в qux в соответствии с новой платформой.Затем, когда вы объединяете ветвь объекта обратно в транк, у вас будет исходный неизменный bar и новый qux.

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

0 голосов
/ 17 июля 2010

Возможно, что-то упускает, но звучит так, как будто вы должны:

  1. Оставьте ветку как есть, вы закончили разработку, но при необходимости можете вернуться к ее истории.
  2. Сделать чистую проверку ствола
  3. Скопировать вашу измененную папку bar как новую папку "qux" под стволом
  4. Добавить qux в ствол
  5. Совершить
...