Как объединить SVN коммиты? - PullRequest
3 голосов
/ 21 июля 2009

Как мне взять диапазон коммитов в моем репозитории SVN и объединить их?

Например, в хранилище существуют редакции 4-10, и я хочу объединить их в новую редакцию 4, которая содержит все изменения за предыдущие 4-10.

Я не хочу ломать существующие теги, которые были созданы с помощью svn copy.

Это потому, что хранилище ранее находилось в ClearCase, а инструмент миграции Polarion оставил огромное количество коммитов из одного файла, которые необходимо очистить.

Ответы [ 4 ]

5 голосов
/ 21 июля 2009

Вы можете создать ветку в редакции 3 и объединить редакции 4-10 в ветку

2 голосов
/ 21 июля 2009

Читая между строк, взгляните на svk , который должен позволить вам запустить локальный репозиторий, а затем зафиксировать сразу несколько изменений в основном репозитории.

1 голос
/ 21 июля 2009

Если вам действительно нужно это сделать, извлеките каждую ревизию (не однофайловую фиксацию) из ClearCase, а затем вручную скопируйте файлы через новую проверку SVN, используя такой инструмент, как WinMerge, чтобы убедиться, что все добавления и удаления файлов выполняются. скопированы, а также изменения. Затем выполните фиксацию SVN.

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

Если это неосуществимо, то не стоит переносить историю изменений из ClearCase - просто начните заново с SVN. Возможно, зафиксируйте текстовый файл со старым журналом изменений из ClearCase для исторических целей, чтобы, если кому-то понадобится вернуться и получить какой-то старый код, он сможет выяснить, какую ревизию искать.

1 голос
/ 21 июля 2009

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

Если вам действительно нужно это сделать, вы, вероятно, можете сделать это с помощью "svnadmin dump" и "svnadmin load".

Редактировать: Если вы просто хотите вытолкнуть коммиты из истории ствола, но можете оставить их в другом месте в хранилище, тогда что-то похожее на предложение Ману - работоспособное решение: переименуйте ствол old_trunk, скопируйте ревизию до диапазона, который вы хотите объединить с транком, затем объедините ревизии в диапазоне и зафиксируйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...