Как объединить коммиты SVN?
Как мне взять диапазон коммитов в моем репозитории SVN и объединить их?
Например, редакции 4-10 существуют в репозитории, и я хочу объединить их в новую редакцию 4, содержащую все изменения в предыдущей версии 4-10.
Я не хочу ломать существующие теги, которые были созданы с помощью svn copy.
Это связано с тем, что хранилище ранее находилось в ClearCase, а инструмент миграции Polarion оставил огромное количество одиночных фиксаций файлов, которые необходимо очистить вверх.
4 ответов:
Читая между строк, взгляните на svk , который должен позволить вам запустить локальный репозиторий, а затем зафиксировать ряд изменений сразу в главном репозитории.
Вы не можете сделать это, не создав новый репозиторий, поэтому лучше просто покончить с этим.
Если вам действительно нужно это сделать, вы можете сделать это с помощью "svnadmin dump "и"svnadmin load".
Edit: Если вы просто хотите вытеснить фиксации из истории Транка, но не возражаете, если они останутся где-то в другом месте репозитория, то что-то подобное предложению Ману является работоспособным решением: переименуйте Транк в old_trunk, скопируйте ревизию перед диапазоном, который вы хотите чтобы слиться с транком, затем слейте ревизии в диапазоне и зафиксируйте.
Если вам действительно нужно это сделать, то проверьте каждую ревизию (а не однофайловую фиксацию) из ClearCase, а затем вручную скопируйте файлы через новый svn checkout с помощью такого инструмента, как WinMerge, чтобы убедиться, что все добавления и удаления файлов копируются, а также изменения. Затем сделайте коммит SVN.
Если это слишком много ручной работы из-за количества коммитов ClearCase (хотя вы, вероятно, могли бы автоматизировать это без особых трудностей), то рассмотрите возможность просто фиксации основных ревизий в SVN (например, точечные релизы) вручную.
Если это невозможно, то подумайте о том, чтобы не переносить историю ревизий из ClearCase - просто начните заново с SVN. Возможно, зафиксировать текстовый файл со старым журналом изменений из ClearCase для исторических целей, так что если кому-то нужно вернуться и получить какой-то старый код, они могут выяснить, какую ревизию искать.
Comments