Subversion - нужно изменить структуру репозиториев? - PullRequest
1 голос
/ 22 декабря 2010

Я использую Subversion и думаю, что моя структура репозиториев не очень хорошая. У меня есть:

/repoA
    /project10
    /project11
    /project12
    /project13
    /project14
    ...
/repoB
    /project20
    /project21
    /project22
    ...

Итак, я поместил несколько проектов в один репозиторий, которые полностью независимы друг от друга. Таким образом, в / repoX «репозитории» представляют собой только папки.

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

/repoProject10
/repoProject11
/repoProject12
/repoProject13
...
/repoProject20
/repoProject21
...

Что ты думаешь? Основная проблема - ограничение пользователей репозиториями. Я не хочу, чтобы один пользователь мог видеть repoA /, пользователь должен, например, только читать и писать в / project11 / project22. Поэтому я должен ограничить пути ... Также существует только одна история для одного хранилища, а не для проекта.

Так что вы думаете, лучше изменить структуру, и один проект управляется одним хранилищем?

С наилучшими пожеланиями.

Ответы [ 2 ]

2 голосов
/ 22 декабря 2010

Я бы просто поместил все ваши проекты в один большой репозиторий.

Другие делают то же самое без проблем.Например, хранилище Apache Software Foundation содержит около ста проектов (включая саму Subversion!) И более миллиона ревизий.

Я не хочу, чтобы один пользовательможет видеть repoA /, пользователь должен, например, только читать и писать в / project11 / project22.Поэтому я должен ограничить пути ...

Subversion делает Авторизация на основе путей , поэтому даже если вы поместите все в один репозиторий, вы все равно сможете управлять доступом для чтения / записи отдельнодля каждого проекта.

Также существует только одна история для одного хранилища, а не для проекта.

Я не уверен, что вы имеете в виду.Если вы сделаете svn log <a href="http://example.com/svn/projectA" rel="nofollow">http://example.com/svn/projectA</a>, вы увидите только историю проекта A, даже если в том же хранилище есть проект B.

Возможно, вы имеете в виду, что вам не нравится то, какномер редакции продвигается глобально для всего хранилища.Я бы предложил думать о пересмотре SVN как о временной координате.Его единственное значение состоит в том, что более высокие номера ревизий произошли после более низких.На самом деле, вы даже можете обойтись без номеров редакций и использовать вместо них даты редакций , если хотите.

2 голосов
/ 22 декабря 2010

Это немного субъективно, но да, нет ничего необычного в том, чтобы каждый проект имел свой собственный репозиторий.

Если проекты не являются крошечными, и работа по созданию нового репо является значительной по сравнению со всем проектом, это то, что я бы сделал.(У меня есть репозиторий «Случайные вещи» для небольших инструментов, скриптов и спайков, которые не принадлежат где-либо еще).

Также вполне возможно управлять разрешениями для репозитория, поэтому я не уверен, чтоВы имеете в виду, когда вы беспокоитесь об этом.Вы можете предоставить любому конкретному пользователю разрешения, которые вы хотите, чтобы он имел.

Например, на клиенте, с которым я работал, у нас была структура, аналогичная (упрощенная для удаления ветвей / ствола / тегов и т. Д.):

/RepoCoreLibrary

/RepoProject1
    /RepoCoreLibrary <as an svn external>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...