Передача относительного внешнего от Subversion - PullRequest
4 голосов
/ 27 мая 2010

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

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

client
shared
portable
app1
app2

и app1 имеет svn:externals

../shared shared
../portable portable

, чтобы при оформлении заказа portable и shared можно было использовать в качестве подкаталогов app1.

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

Ответы [ 3 ]

2 голосов
/ 03 июля 2010

Эта функция еще не реализована. Следующее взято из SVN вер. 1,5 книги :

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

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

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

0 голосов
/ 09 апреля 2013

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

0 голосов
/ 17 февраля 2011

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

Например, если я запускаю

cd app1
svn ci file_in_repository.cpp shared portable

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

...