2010-08-01 3 views
3

У меня есть проект в репозитории git, который использует некоторые настраиваемые (и до сих пор неверсированные) сценарии установки для среды сборки и т. Д. Я бы хотел поставить их под контроль версий (надеюсь, git), но сохраните их отдельно от самого проекта, все еще живу в базовом каталоге проекта - я рассмотрел такие параметры, как локальные ветви, но у них, похоже, возникла проблема с возвратом к master (или любым другим " реальная "ветвь) отбросит рабочие копии сценариев установки.Сохранение пользовательских файлов конфигурации сборки в репозитории git

Я нахожусь в Windows с помощью msysgit, поэтому у меня есть несколько инструментов для игры; есть ли у кого-нибудь рекомендации или решения?

ответ

1

Если вам действительно нужно их отдельно от основного мерзавца репо, все еще живут непосредственно в нем, вы можете попробовать:

  • создания нового репо с теми скриптом в нем

и:

  • добавив, что новое репо как подмодуль к вашему репо. За исключением:
    • а/эти сценарии не будут жить непосредственно в базовом каталоге, но и в подпапках, представляющий подмодуль
    • б/вам нужно, конечно, не публиковать (толчок), что новый репозиторий, для того, чтобы другие клонировать ваш главный репозиторий, чтобы не получить эти файлы установки

или:

  • сливаясь, что новый репо в основной репозиторий (с subtree project), но:
    • вам нужно разделить обратно свой проект, чтобы избавиться от этих файлов
    • для проекта с большой историей, и с частым толчком, что шаг (раскол) может быть долгим и громоздким.

Я хотел бы рассмотреть более простое решение, вовлекая некоторую эволюцию в текущих файлах настройки:

  • частного репо (как в «не нажат») с этими файлами настройки
  • среды переменные с контуром вашего основного git-репо для ваших установочных файлов (что должно было бы не быть непосредственно в базовом каталоге указанного основного репо), чтобы выполнять свою работу в правильном каталоге (например, начинать, например, с «»').
+0

Я думаю, что простое решение может быть лучшим здесь; Я создал частный репозиторий в качестве родного брата моего проекта, поэтому любой «cd ../ project /» будет работать на обоих. Кажется, работает до сих пор; благодаря! – Alphax

0

Я хочу поделиться дополнительным решением и некоторыми образцами, с которых следует начать.

У меня есть аналогичная проблема при попытке построить Mozilla Firefox с Buildbot - Мне нужно иметь некоторые файлы в корневой папке (а именно файл .mozconfig и некоторые вспомогательные скрипты), и я хотел их отдельно развернуть.

Мое решение состоит в следующем:

  1. кассе код Firefox от Mercurial repository;
  2. checkout дополнительный репозиторий с дополнительным файлом, в котором я нуждаюсь;
  3. перед началом сборки, я копирую эти файлы в папку с кодом Firefox.

Этот подход реализован в следующих хранилищах:

  • buildconfig-mozilla-central: она содержит конфигурацию BuildBot, которая
    • вытягивает обе репозиториев
    • копирует файлы из сценариев хранилище
    • и начать сборку;
  • buildscripts-mozilla-central: репозиторий с конфигурацией сборки и вспомогательными скриптами.

Обратите внимание, что код может не быть хорошо учтен (например, пути), но он должен быть хорошей отправной точкой.

Эта процедура предназначена для Firefox, но ее можно применять к любому репозиторию.