Я думал, что это использовалось только когда URL репозитория изменился и кто-то хотел обновить работающий
скопируйте URL-адрес, чтобы указать местоположение нового сервера SVN.
Это именно то, что он делает. Если ваш сервер Subversion изменил свое местоположение, используйте «switch --relocate», он просто свяжется с сервером и проверит его, если он все еще там, а затем перепишет URL-адреса в вашей рабочей копии на новый URL-адрес. Ваша рабочая копия не обновляется с какими-либо отличиями от сервера (пока вы не запустите svn update снова)
svn switch, без --relocate переключает вашу рабочую копию в новое место (обычно ветвь) и вносит все необходимые изменения в вашу рабочую копию, чтобы преобразовать ее в эту ветку. Это почти то же самое, что просто проверить эту ветку , но обычно быстрее и удобнее.
Подробнее здесь / здесь
В частности, может ли он использоваться для интеграции в ветку пользователя ветки поставщика, которая имеет много различий
с предыдущей версии, т.е.
Нет, для этого svn merge.
Хотя svn-переключатель может позволить вам сначала проверить эту ветку поставщика в вашей рабочей копии. Вы оставляете свой основной проект прежним, но переключаете подкаталог, в котором находится материал поставщика, на новый филиал поставщика.
Обратите внимание, что Subversion (пока) не поддерживает слияние / ветвление между различными серверами Subversion, поэтому ветвь вашего поставщика должна быть импортирована на сервер, где ваша "ветвь пользователя" является первой. Затем вы можете объединить эту новую ветку поставщика с вашей веткой пользователя.
Вы также можете использовать svn: external и для этого, обычно код поставщика хранится вне пути вашего проекта и «импортируется» в рабочую копию с помощью svn: external. например у тебя есть
/myproject/trunk/
как ваш проект и /3party/libraryFoo/version1/
При работе с myproject
вы хотите, чтобы он был под /myproject/trunk/libraryFoo
, поэтому вы просто добавляете svn: external на /myproject/trunk/
, например, к. libraryFoo <a href="http://myserverver//3party/libraryFoo/version1/" rel="nofollow">http://myserverver//3party/libraryFoo/version1/</a>
. Когда вы хотите перейти на новую версию, вы просто меняете svn: external на, например. libraryFoo <a href="http://myserverver//3party/libraryFoo/version2" rel="nofollow">http://myserverver//3party/libraryFoo/version2</a>
. Это позволяет вам получать данные с другого сервера Subversion, например, непосредственно к серверу 3.party, хотя это не очень полезно, если вы собираетесь вносить локальные изменения.