Использование svn:externals

Дано:

  • наш проект (все-равно какой) в SVN репозитории;
  • внешняя библиотека (нашей или сторонней разработки).

Задача:

  • прозрачно для разработчика иметь up to date копию библиотеки в проекте.

Решение:


Пусть для определенности библиотеки у нас хранятся в директории lib/vendor относительно корня проекта. Выполняем команды

$ cd lib/vendor
$ svn propedit svn:externals .

 

И в открывшемся редакторе (у меня vim) добавляем следующую строку:

dirname svn://url.to.the/library/repository

Здесь:

  • dirname это имя директории в которую будет развернута библиотека
  • svn://url.to.the/library/repository – соответственно URL репозитория (http, https, svn)

Сохраняем изменения и фиксируем их в репозитории. После этого можно выполнять

svn up

Будет создана директория lib/vendor/dirname и в нее развернут код из указанного нами URL. Теперь при обновлении проекта будет обновляться и билиотека.

Хинт: если при выполнении svn propedit вылетает ошибка вида

svn: The EDITOR, SVN_EDITOR or VISUAL environment variable or ‘editor-cmd’ run-time configuration option is empty or consists solely of whitespace. Expected a shell command.
 

Значит у вас не установлена переменная, указывающая какой редактор должен использовать svn. Смотрим где у нас vim и задаем требуемое значение переменной:

$ which vim
/usr/bin/vim
$ export SVN_EDITOR=/usr/bin/vim

This entry was posted in Профессиональное and tagged . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">