2009-05-11 3 views
4

Есть ли устойчивый метод репо, поддерживаемый SVN как подмножество другого.Суб-репозиторий Subversion

я мог бы иметь следующее:

  1. phpCodeRepo
  2. pyCodeRepo
  3. contentRepo

, что 1 и 2 могут иметь как элемент их репо, некоторые данные репо 3. Таким образом, обновление 3 приведет к увеличению (необязательной) версии в 1 и 2. И проверка 1 или 2 также проверит правильную версию 3.

+0

Метод 'hooks' позволяет мне выполнить shell-скрипт, который скажет: «Вы хотите, чтобы phpCodeRepo и pyCodeRepo использовали новое обновление», а затем изменили некоторые данные в каждом репо (номер версии связанного контента). Затем, проверяя php или py, они также могут проверить свой родственный контент! –

+0

Почему вы хотите отдельные хранилища? Обычно для последовательного управления версиями проще и проще поставить все подпроекты в один репозиторий. Если вам нужно их разделить, вы можете использовать отдельные подкаталоги, содержащие соединительные линии, ветви и т. Д. Для каждого подпроекта. – starblue

+0

Поскольку содержимое разделяется между приложениями, которые приходят и уходят, независимо друг от друга. Я не могу придумать ничего более грязного, чем полностью отдельный проект, проживающий в том же репо (с разными моделями разработки, разработчиками и еще много чего), потому что они полагаются на общий проект, который сам разрабатывается независимо. Почему Gnome не разделяет libc repo тоже;) –

ответ

4

Вы можете реализовать с помощью hooks

Кроме того, вы можете тянуть в других РЕПО при проверке с использованием externals

+0

Спасибо, кажется, хорошо. Не знал, что можно вызвать внешнюю программу. Предполагалось (ошибочно), что это было внутреннее событие. –

1

Это довольно просто: добавьте 3 папки в корневой репозиторий (phpCodeRepo, pyCodeRepo, contentRepo). Возможно, вы захотите посмотреть и на branching.

+0

Это не учитывает (необязательное) увеличение оборотов ... –

+0

Мне нужно, чтобы каждое репо было независимой базой subversion –

4

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

+0

Спасибо Вадим; Я не видел вашего комментария, прежде чем добавить это в свой пост ... извините. +1 –

+0

Спасибо Вадим, это тоже полезно! –

+0

Я держу Джонса в ответе, поскольку основным моментом является необязательное отношение контента к другим репозиториям, связанным с фиксацией, что позволит сценарий быстрой оболочки. :) –

Смежные вопросы