Это правильный шаг за шагом и организация для создания репозитория SVN с несколькими проектами и поставщиками?

Я прочитал довольно много книги Red Bean Software SVN и некоторые вопросы здесь, на SO, но я хочу убедиться, что я делаю это правильно в первый раз шаг за шагом, прежде чем Я начинаю использовать его. Это правильно?

  1. Установите СВН.
  2. Создайте репозиторий SVN в /usr/local/svn. Структура каталогов выглядит следующим образом:

    -- conf
    -- db
    -- format
    -- hooks
    -- locks
    -- README.txt
    
  3. Создание папок через командную строку для организации репозитория (включая проекты и поставщиков).

    -- conf
    -- db
    -- format
    -- hooks
    -- locks
    -- projects
       -- project_name
          -- vendor
          -- trunk
          -- branches
          -- tags
       -- project_name
          -- vendor
          -- trunk
          -- branches
          -- tags
    -- README.txt
    
  4. Извлечь код поставщика в папку поставщика под правильным названием проекта.

  5. Экспортируйте код поставщика в транк под правильным именем проекта (слияние не требуется, так как у меня пока нет файлов транка проекта).
  6. Создайте пользователей/разрешения в /svnroot/conf/passwd и /svnroot/conf/svnserve.conf.
  7. Убедитесь, что svnserve запущен, и на моем локальном клиенте SVN (TortoiseSVN) извлеките магистраль для нужного мне проекта.

Мне не нужно обслуживать это по общедоступному URL-адресу, поэтому я не настраиваю Apache. Сервер находится не в нашей сети, а представляет собой выделенную коробку CentOS, которую мы арендуем. Спасибо за любые мысли и советы.

ИЗМЕНИТЬ:

Думаю, я запутался, потому что у меня нет кода или проекта для начала, поэтому я начинаю заново с кода поставщика. Нужно ли мне где-то на сервере создать структуру каталогов, которая включает в себя подпапки моего проекта с именем поставщика, ствола, ветвей и тегов, импортировать ее в мое хранилище, а затем импортировать код поставщика в папку поставщика? Идея состоит в том, что я могу получать обновления от поставщика, а затем объединять эти обновления с любыми изменениями, которые я внес в свой ствол.


person Community    schedule 03.11.2008    source источник


Ответы (2)


Создание папок через командную строку для организации репозитория (включая проекты и поставщиков).

Вы имеете в виду создание структуры репозитория путем создания каталогов внутри каталога установки subversion? Это очень неправильно.

Вы должны создать необходимые папки с помощью команды svn mkdir, а не через файловую систему.

В /usr/local/svn у вас есть физическая реализация репозитория Subversion, и вы должны обращаться к нему только через клиент, и никогда не трогать его "вручную".

Например, используя схему URL-адреса file://

svn mkdir file:///usr/local/svn/projects -m "Parent dir for projects created"
person Davide Gualano    schedule 03.11.2008
comment
Круто, вот почему я спрашиваю, потому что я знал, что, вероятно, что-то упустил :) - person ; 03.11.2008

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

2) создайте свой репозиторий, выполнив что-то вроде svnadmin create /usr/local/svn.

3) создайте свои папки. Вам не нужны (или не нужны) части вашего списка, которые не ниже projects/. Эти другие каталоги используются SVN для отслеживания ревизий, на самом деле их нет в репозитории. Если вы создадите где-то в вашей системе иерархию каталогов, содержащую поддерево project_name/, вы сможете запускать в ней svn import столько раз, сколько захотите, по одному разу для каждого проекта (каждый раз давая другое имя для места назначения). Это создаст вашу структуру каталогов.

4) Вместо «оформить заказ», я думаю, вы имеете в виду либо «импорт», либо «регистрация» (обычно это называется «фиксация» на языке SVN, но «регистрация» будет понята). При импорте файлы поставщиков будут добавлены в репозиторий. Checkout означает «создать локальную копию этого версионного каталога, с которой я буду работать», известную как рабочая копия. У каждого разработчика в вашей команде должна быть своя рабочая копия. После того, как разработчик вносит изменения в свою рабочую копию, он затем svn commit отправляет изменения в репозиторий. Другие разработчики в команде запустят svn update, чтобы перенести эти изменения из репозитория в свои рабочие копии.

5) В последнее время я не читал книгу SVN, но я думаю, что она указывает вам копировать версию ветки поставщика в магистраль, а не экспортировать ее. Экспорт в терминах SVN означает удаление версии дерева каталогов, что явно не то, что вам нужно.

Вам может быть проще, если вы выполните шаги 6 и 7 сразу после шага 2, так как тогда вы можете использовать протокол svn:// для доступа к вашему репозиторию для оставшихся шагов вместо file://, как предлагает Давиде, который работает только на локальном компьютере.

person rmeador    schedule 03.11.2008