Вопрос проверки SVN

Я собираюсь перейти на SVN в качестве своего предпочтительного RCS (после многих лет использования CVS), и у меня есть основной вопрос...

У меня есть несколько общих проектов — код, который я хочу использовать с множеством разных проектов. Можно ли «связать» эти общие папки с проектами, которым они нужны, чтобы при извлечении проекта также извлекался общий код?

Например, предположим, что мой репозиторий выглядит так:

root
--project1
--project2
--shared
--smtp

Когда я проверяю проект1, я также хочу проверить общие и smtp.

В те дни, когда я работал с CVS, я бы использовал символическую ссылку Unix в одной из папок проекта, но, поскольку мой новый репозиторий SVN не обязательно будет размещен на компьютере с Unix, я не могу сделать то же самое.


svn
person Rob    schedule 17.09.2008    source источник


Ответы (6)


SVN Externals - это то, что вы хотите сделать. Книга SVN подробно объясняет это здесь. Что мне нравится в SVN, так это замечательная документация.

person davr    schedule 17.09.2008

Вы ищете свойство "svn:externals". См. этот раздел svnbook:

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

Пример (из svnbook, который является ОТЛИЧНЫМ справочником по вопросам svn):

$ svn propget svn:externals calc
third-party/sounds             http://svn.example.com/repos/sounds
third-party/skins -r148        http://svn.example.com/skinproj
third-party/skins/toolkit -r21 http://svn.example.com/skin-maker

в этом примере сторонние звуки будут извлечены из http://svn.example.com/repos/sounds. -rNNN привязывает проверку к ревизии, чтобы, если вы занимаетесь дополнительной разработкой, вы могли убедиться, что другие ваши проекты не сломаются случайным образом. Как правило, вместо того, чтобы делать эту ревизию, я обращаюсь к тегу, который содержит стабильную версию.

person jamuraa    schedule 17.09.2008

Это то, для чего нужны svn "Externals".

person Greg Rogers    schedule 17.09.2008

Да, взгляните на SVN Externals.

person Dan Dyer    schedule 17.09.2008
comment
У джамуры явно есть лучший, прямой ответ. Проголосовал за это. - person Jilles; 01.11.2008

Да, этот механизм называется «внешний». См. книгу.

person EfForEffort    schedule 17.09.2008

SVN имеет функцию, называемую «внешними», которая в основном работает так же, как работает символическая ссылка UNIX (вы указываете определенный каталог, который находится в одном месте в вашем репозитории, на какой-то другой каталог в другом месте вашего репозитория).

Для получения дополнительной информации о настройке внешних источников см. здесь: http://svnbook.red-bean.com/en/1.0/ch07s03.html

Надеюсь, это поможет.

person machineghost    schedule 17.09.2008