Я действительно новичок в подрывной деятельности и концепциях управления версиями, и хотя я могу обрабатывать несколько файлов в проекте, мне нужен совет по масштабированию это для моих нужд.SVN - сбор нескольких проектов в одну базовую версию
По существу, мы разрабатываем среду, содержащую множество сценариев и конфигураций, которые распространяются по многим виртуальным и физическим машинам. Создавайте скрипты, файлы конфигурации, двоичные файлы, зеркала RPM и т. Д., И в то время как каждый в своем собственном мире они в порядке, нам нужно каким-то образом объединить их в одну версию. В то время как в более крупном проекте кодирования я вижу, что это, по-видимому, просто будет обрабатывать папки в одном проекте SVN (как я понимаю, поэтому, вероятно, нет ...), эти thigns действительно не имеют ничего общего, а многие даже не кода , и будет просто находиться в SVN как владелец места, который я себе представляю. Таким образом, нет смысла «проверять» собранную массу данных, но каким-то образом необходимо связать номер версии верхнего уровня с 60 различными работами. Как и выше, это код, файлы конфигурации, rpm и т. Д.
Я изначально предполагаю, что мы будем использовать SVN для этого как-то, но, возможно, это неправильное предположение в первом случае. Однако из моего общего представления о требованиях, которые я могу себе представить, наличие реальных проектов в SVN, а затем проектов-оболочек, которые обновляются на cronjob (или другом триггере), чтобы ссылаться на самые последние версии SVN каждого проекта, перечисленные в файле метаданных внутри проект обертки. Если какой-либо проект в списке был изменен, то этот проект оболочки обновляется с новым файлом метаданных, который проверяется на нем. В свою очередь эти обертки обертываются другими обертками вплоть до одного мастер-проекта. Конечным использованием этой версии основного проекта является создание базовой линии проектов под ней, которые могут быть использованы с системами документирования и отслеживания изменений, а также с уровнем автоматизации.
Хотя я могу предусмотреть то, что я только что описал, он основан только на очень небольшом представлении о SVN и, вероятно, (надеюсь), отсутствует большая часть существования SVN (или git .... ??).
Я надеюсь, что это имеет смысл, извините, если это не так. Более чем счастлив попытаться прояснить что-либо.
Благодаря
Chris
EDIT: Для того, чтобы привести пример сортов отдельных вещей, которые мы должны охватывать:
- Конкретной версия оборотов репозиториев CentOS, согласно определению время, которое было синхронизировано с сетью
- Конфигурационные файлы Nagios, которые будут установлены в vm после установки пакетов Nagios
- Сценарии Kickstart используется для создания виртуальных серверов
- Сценарии, используемые для запуска развертывания систем
- В Iptables наборы правил, применяемых к каждому типу виртуальной машины
Я не озабочен здесь о как все это делается в малейшей степени, и как мы представляем представление о том, какая версия каждой из этих вещей требуется во время развертывания.
[EDIT] Хорошо, все это сводится к тому, что я не очень понимаю, как управлять версиями svn. Поскольку номер ревизии является репозиторием, все проекты неявно покрываются ... никакой реальной работы не требуется для достижения того, что я хотел. Спасибо, и неудивительно, что я не имел никакого смысла никому другому.
Я не * думаю *. Это на самом деле выглядит в значительной степени как обратное тому, что мне нужно. Я действительно не хочу, чтобы все данные в этих проектах были в одном месте, это бесполезно в большой куче на одной машине. Это больше способ быстро дойти до каждой версии «листа» (извините) с одного номера версии корневого сервера. –
Когда вы определяете внешний, вы можете определить, какую версию этого внешнего каталога вы хотите. Таким образом, вы можете объединить много проектов в один и сказать: «Эта система состоит из этих версий этих подпроектов». Разве это не то, что вы пытаетесь сделать? –