Управление сторонними библиотеками в Subversion.
В этом блоге я ни разу не постил переводы. Повода не было. Но вот в RSS пробежала статья, описывающая правильное управление внешними библиотеками в Subversion. Она мне настолько понравилась, что я решил опубликовать её вольный перевод. К сожалению, времени потестировать рецепт у меня не было, поэтому буду переводить "as is". Если заметите какие-нибудь неточности, отпишите в комментах, исправлю.
Subversion Externals
В Subversion существует удобный механизм управления внешними библиотеками, который позволяет автоматически экспортировать код из других репозиториев в рабочий проект. Это svn:externals. Этот пост создан в качестве напоминания самому себе, о том, как это реализовать. Потому что каждый раз забывая, я вынужден гуглить. А решение, к которому я прихожу каждый раз одно и то же.
Для начала, предположим, что у нас в репозитории есть папка lib/
, и мы хотим положить в неё код из папок library/
и incubator/library/
проекта Zend Framework. Конечная структура папок выглядит следующим образом:
myApplication/
lib/
incubator/Zend/
Zend/
Для этого необходимы следующие заклинания:
$ cd lib/
$ export SVN_EDITOR=vim
$ svn propedit svn:externals .
(Разумеется, стоит заменить vim
на редактор, привычный Вам)
В запустившемся Vim'е (emacs'е, nano) необходимы следующие строки:
incubator http://framework.zend.com/svn/framework/branch/release-1.0/incubator/library
Zend http://framework.zend.com/svn/framework/branch/release-1.0/library/Zend
Стоит отметить, отметить, что release-1.0
это текущий релиз ZF, а следующий будет release-1.5
. Если вам необходима текущая версия ZF 1.5, то это будет release-1.5PR
Сохраняемся, выходим из редактора и видим следующее сообщение:
Set new value for property 'svn:externals' on '.'
Вот и всё! Не забываем закоммититься и теперь для поддержания ZF в состоянии актуальности не забываем запускать svn up
.
5 комментариев:
Всё хорошо до тех пор пока не потребуется в этой сторонней библиотеке что-то исправить (а случай вовсе не редкий). И сразу наступает прозрение...
Поэтом единственное достойное применение для svn:external - просто собирать "ссылки" на библиотеки.
А для решения таких ситуаций очень подходит piston
да ладно уж
не так уж все и плохо
заходишь в папку, которая была вытянута через svn:externals, и в ней говоришь svn commit.
ничего сложного
У вас похоже есть write-доступ к репозитариям всех используемых библиотек.
Уважаю!
а ведь и вправду - ко все нашим библиотекам есть доступ на запись
не подумал сразу, извиняюсь :)
Welche Sprüche ich auch lesenwert finde sind [url=http://www.dieversteigerungskobolde.de/sprueche.php]Sprüche zum Nachdenken[/url].
Oder kennt Ihr noch andere Seiten mit Liebessprüchen?
Ich freue mich über jeden Hinweis.
Отправить комментарий