2010-05-27 3 views
4

В нашем репозитории Subversion есть несколько подкаталогов, содержащих общие файлы, а также подкаталоги для каждого проекта. Проекты настраиваются с относительными свойствами svn:externals, чтобы вытащить общие каталоги из репозитория и настроить их как подкаталоги.Обязательные относительные внешние значения из Subversion

Так, например, наш repostory выглядит примерно так:

 
client 
shared 
portable 
app1 
app2 

и app1 имеет своей svn:externals

 
../shared shared 
../portable portable 

так, что на кассе, portable и shared могут использоваться как поддиректории app1 ,

TortoiseSVN имеет изящную функцию, которая делает фиксацию на app1 автоматически обнаружит externals подкаталоги, понимают, что все они часть того же хранилища, и зафиксировать свои изменения в рамках одного и того же совершаем. Однако я не могу понять, как получить такое же поведение от клиента командной строки. Какие-либо предложения?

+0

Также полагаться на эту функцию и не заметил, что клиент командной строки не играл в мяч. –

ответ

0

Оказалось, что это очень простое решение, по крайней мере с Subversion 1.6.12: явно указать пути в командной строке.

Например, если я бегу

cd app1 
svn ci file_in_repository.cpp shared portable 

тогда Subversion будет совершать app1, shared и portable все в пределах одной ревизии, как я хочу, чтобы это.По-видимому, клиент командной строки не будет обрабатывать внешние ресурсы по умолчанию, но не имеет проблем с обработкой одной фиксации с ними, если они явно указаны.

2

Эта функция еще не реализована. Берется из SVN ver. 1.5 book следующее:

Пожалуй, наиболее удручающе, в рабочие копии, созданные с помощью поддержки определения Externals еще отсоединяется от основного рабочего копии (на которой версионируются каталоги СВН: внешнеположенности недвижимость был фактически установленный). И Subversion по-прежнему действительно работает только на nondisjoint рабочих копиях. Так, например, если вы хотите совершить изменения, которые вы сделали в одном или нескольких из этих внешних рабочих копий, вы должны запустить SVN совершать явно на тех, кто работает копии фиксирующей на первичной работы копия не будет переписываться в любые внешние.

Я также проверил SVN 1.6 release notes и только два улучшения сделавшие, которые связаны с SVN: внешние ссылки. Это: поддержка файлов в svn: externals и поддержка обычных правил цитирования оболочки во внешних определениях.

Возможно, это не функция, которую стоит реализовать (и это также мое мнение). Как правило, svn: externals используются для включения относительно стабильных заголовков/файлов в какой-либо проект/приложение, которое зависит от них. Обычно они ссылаются на теги или пути определенных изменений. Это большой вопрос без конкретного ответа, который должен сделать клиент svn в этом случае.

0

Просто, чтобы указать, решение выше - для обозначения каждого внешнего проекта индивидуально - работает только в том случае, если внешние ссылки являются абсолютными.

Смежные вопросы