Это атрибут, который можно установить любому каталогу в репозитарии. Он позволяет подгружать файлы и каталоги с другого места.
(За деталями сюда - http://svnbook.red-bean.com/en/1.0/ch07s03.html)
До версии subversion-1.6 возможно было указать только ссылки на внешние каталоги. То есть внешний файл было невозможно указать.
С версии 1.6 появилась возможность указывать в svn:externals и отдельные файлы. Но существует несколько особенностей про которые нужно помнить:
- Невозможно указать ссылку на файл во внешнем репозитарии( а на каталог возможно ).
- Особенная процедура удаления ссылки на внешний файл (поскольку файл добавляется в локальную копию, как любой другой файл с репозитария).
Для удаления ссылки на внешний файл необходимо:
- Отредактировать либо удалить аттрибут svn:externals и сделать коммит.
- Удалить папку содержащую внешний файл. Просто удаления файла - недостаточно.
- Обновиться для востановления удаленной папки ( "svn up" )
- Шаг 2 и 3 необходимо провести каждому пользователю репозитария поскольку "svn up" ничего не даст.
Вся загвоздка в пункте 4.
Допустим у Вас был внешний файл прописанный через svn:externals, а затем Вы убрали внешнюю ссылку на файл и завели отдельную его копию. Никто и никогда про это не узнает и все будут пользоваться старым файлом пока не выполнят пункт 4.
1 коммент.:
на сегодняшний день (svn 1.6 и выше) можно также и файлы экстернить. думаю, это свойство рано или поздно до ума доведут.
по пункту 2 - спасибо за инфу, думал надо удалять всю копию и checkout выполнять.. оказалось проще. но 4-й пункт не отменяется)))
Отправить комментарий
Не забудьте добавить себя в постоянные читатели и включить уведомления о новых комментариях, либо воспользуйтесь RSS каналом ;)