Разрешите путаницу с "проектами" SVN в удаленном хранилище - PullRequest
2 голосов
/ 11 марта 2011

Я набираюсь скорости в SVN и имею представление об основах. Тем не менее, есть одна путаница для меня, что я хотел бы помочь понять.

Я много читал об этом замечательном руководстве, которое я нашел в другом месте в StackOverflow: http://svnbook.red -bean.com / ночной / ан / svn.tour.importing.html # svn.tour.importing.layout

В частности, я принимаю их рекомендацию организовать мой репозиторий с моими 3 проектами следующим образом:

\repository\projectA\trunk
\repository\projectA\branches
\repository\projectA\tags

\repository\projectB\trunk
\repository\projectB\branches
\repository\projectB\tags

Тем не менее, мой вопрос не о расположении выше, так как уже есть сотня вопросов по SO.

Вместо этого у меня вопрос о том, как работают удаленные репозитории с организацией, которую я хочу, и как TortoiseSVN работает с ней. В частности, я использую xp-dev, но этот вопрос относится к другим удаленным SVN-репозиториям, которые я видел (например, codesion).

Я не видел способа создать репозиторий, только «проект». Поэтому я запутался в терминологии «проект» по сравнению с термином «удаленный репозиторий», поскольку, насколько мне кажется, существуют только «удаленные проекты».

Итак, если я хочу организовать свой репозиторий, как я описал выше, я должен создать 2 проект на xp-dev ("projectA" и "projectB") или отдельный проект (скажем, "foo") ) с двумя подпапками в нем?

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

Посмотрим, поможет ли это: Subversion репозиторий - это процесс deamon / server, который отвечает на команды клиента svn. Кроме того, весь контент, доступный через один сервер, может рассматриваться как хранилище .

Проект - это не более чем простая папка внутри всего размещенного в Subversion контента.

Фактически, это в значительной степени причина того, почему вы используете макет, как вы описали: если вы хотите иметь разные ветви или теги, вы «копируете» весь проект в новое место под tags или branches папки, «создание» отдельного проекта для размещения этой отдельной кодовой базы. И это также причина, по которой TortoiseSVN (и любой SVN-клиент) не может заботиться о макете вашего репозитория: им нужно знать только абсолютный удаленный URL-адрес, связанный с вашими локальными файлами, и они с ним абсолютно согласны.

Обычно, чтобы иметь несколько проектов в одном репозитории SVN, вы создаете базовую папку для каждого проекта, а затем нормальный макет, как вы уже знаете его, например:

svn_root/
   |
   |\-> projectA
   |       |
   |        \->trunk
   |        \->tags
   |        \->branches
   |
    \-> projectB
           |
            \->trunk
            \->tags
            \->branches

Поскольку не существует такого понятия, как формальное определение «проекта» подрывной деятельности, просто представьте их как логические сущности xp-dev и создайте два отдельных проекта, по одному на каждый ваш проект: -)

РЕДАКТИРОВАТЬ: обновлено, чтобы четко указать, что это предложение

1 голос
/ 23 марта 2011

Другой ответ правильный.В приведенном примере «проект» - это просто еще одна папка.

Однако позвольте мне расширить его в контексте Codesion, как вы упомянули Codesion .:

У вас может быть один проект Codesion содин репозиторий .... так что вы можете иметь: (CompanyProjectX здесь просто папка)

MyCodesionProjectRepo
  |
  |\-> CompanyProjectA
        |
         \trunk
         \branches
         \tags
  |\-> CompanyProjectB
        |
         \trunk
         \branches
         \tags

Или вы также можете иметь 2 проекта Codesion (например, с собственным репо):

MyCodesionProjectRepoA
   |
    \trunk
    \branches
    \tags

MyCodesionProjectRepoB
   |
    \trunk
    \branches
    \tags

Как рекомендовано в другом ответе, вероятно, лучше создать репозиторий (или проект Codesion) для ваших проектов компании / организации

ура!

Tona

...