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

StackOverflow https://stackoverflow.com/questions/259600

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

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

Редактировать:

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

Это было полезно?

Решение

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

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

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

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

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

svn mkdir file:///usr/local/svn/projects -m "Parent dir for projects created"

Другие советы

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

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

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

4) Вместо "checkout", я думаю, вы имеете в виду либо "import", либо "checkin" (обычно называемый "commit" на языке SVN, но "checkin" будет понят).При импорте файлы поставщика будут добавлены в репозиторий.Оформить заказ означает "создать локальную копию этого версионного каталога, чтобы я мог с ним работать", известную как Рабочая копия.У каждого разработчика в вашей команде должна быть своя рабочая копия.После того как разработчик внесет изменения в свою рабочую копию, они затем svn commit они, которые отправляют изменения в репозиторий.Другие разработчики из команды будут работать svn update чтобы перенести эти изменения из репозитория в их собственные рабочие копии.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top