В проекте используются сторонние библиотеки.
Они живут в своих репозиториях, хочется иметь возможность их оттуда обновлять, и хранить нужную ревизию в нашем репозитории.
По каким ключевым словам грепать svn мануал?
таки ещё одна проблемка…
делаются локальные фиксы, которые в репу библиотеки непонятно когда попадут (библиотека чужая).
тут единственный вариант — перетащить всё в свою репу?
спасибо.
но не совсем въеду что означает номер ревизии в этих свойствах
из доков:
third-party/skins/toolkit -r21 svn.red-bean.com/repos/skin-maker
это означает что в toolkit будет чекаутится именно 21 ревизия skin-maker?
-r21 для того, чтобы при обычном чекауте (свой проект) не обновились «случайно» (забыли указать --ignore-externals) внешние библиотеки, порушив связи с ними в проекте. А когда решите обновить библиотеку, то просто заменяете номер ревизии на нужный, обновляете, тестируете…
svn externals позволяет как раз вытягивать нужную или последнюю ревизию из другого репозитория. Храниться он у вас будет только в месте с рабочей копией на диске, в хранилище будет только ссылка. Если сторонний репозиторий не всегда доступен, слишком велик или часто обновляется, то проще сделать копию того репозитория у себя в хранилище и подключаться уже к нему. Делается это достаточно просто руками, обновления цепляются тоже, к сожалению, руками. Если кто знает более «правильное» решение, буду рад почитать о нем.
таки ещё одна проблемка…
делаются локальные фиксы, которые в репу библиотеки непонятно когда попадут (библиотека чужая).
тут единственный вариант — перетащить всё в свою репу?
Если либа чужая и вы делаете фиксы и они не могут комититься в репозиторий этой либы, то ее в любом случае нужно переносить в свой репозиторий, либо делать отдельную ветку. И вам в любом случае придется мержить свои изменения с изменениями разработчиков либы.
Я бы завел отдельный репозиторий для либы и сделал в нем ветку со ссылкой на оригинальный репозиторий, а в другой ветке держал свою версию либы и переодически мержил ее с оригинальной.
Ну и, соответственно, в своем проекте надо сделать екстернал на вашу ветку в этом репозитории.
Тем самым вы обеспечите себе как бы «буфер» для ваших изменений в либе и сможете поддерживать ее актуальной, мержив с репозиторием разработчиков этой либы.