То, что вы хотите, звучит для меня как сценарий "ветки поставщика".
текущий репозиторий
root
|-- myproject
|
-- mycode
|
-- library -> svn:externals to a remote svn or your own libraryproject
рекомендуемый репозиторий
root
|-- myproject
|
-- mycode
|
-- library -> copied/branched from ^/vendor/library/current (modified at this location as much as you like)
|
-- vendor
|
--library
|
--current
|
--imported-version-1.0
|
--imported-version-1.1
Как создать макет
Создать ^ / vendor / library / current и СКАЧАТЬ в него исходный неизмененный код библиотеки.
svn commit ^/vendor/library/current
svn cp ^/vendor/library/current ^/vendor/library/imported-version-1.0 (tag the import)
svn cp ^/vendor/library/current ^/myproject/library (branch the code into your project)
изменить ^ / myproject / library и зафиксировать
Как обновить библиотеку без потери ваших изменений
Загрузить последний оригинальный выпускбиблиотеки в ^ / vendor / library / current OVERWRITING файлы.
svn commit ^/vendor/library/current (checks in the difference between the two library releases)
svn cp ^/vendor/library/current ^/vendor/library/imported-version-1.1 (tag the change)
cd /your-local-workspace/myproject/library (will be merge target)
svn merge ^/vendor/library/current (get all CHANGES from the upstream branch and apply them to your modified library)
svn commit
прибыль
Вместо того, чтобы переносить «current» непосредственно в ваш проект, вы можете перейти к «my-modified-libs "и используйте его через внешние.Это рекомендуется, если у вас есть несколько проектов, которым требуется одна и та же измененная версия библиотеки.
Имейте в виду, что у филиалов поставщиков будут проблемы, связанные с переименованием и удалением, поскольку они не могут быть отслежены перезаписью.Кросс-репозиторийное слияние - это другая и довольно молодая тема для SVN.
Если вы попробуете, сообщите нам, как это произошло:)
Кристоф