Авто создание хранилища из заглушки с гитозом - PullRequest
0 голосов
/ 13 октября 2011

Использование gitosis для настройки репозиториев работает довольно хорошо.

Однако, ручное создание каждого репозитория довольно громоздко, особенно потому, что это нужно делать из командной строки. (git init, git remote add, git commit, git push) Поскольку большинство наших проектов являются OSGi-Bundles, мы можем использовать практически одинаковую структуру хранилища и pom-файл для каждого проекта. Поэтому вместо того, чтобы создавать все это каждый раз, когда нам нужно создать новый пакет, я хотел бы сделать что-то вроде этого:

  1. Пользователь настраивает хранилище в gitosis-admin [уже работает]
  2. Пользователь вносит изменения в житоз [работает уже]
  3. Гитоз обеспечивает доступ к хранилищу [уже работает]
  4. gitosis создает репозиторий из заглушки (содержащий .gitignore, pom.xml, пустой каталог src /) [НЕОБХОДИМО СДЕЛАТЬ]
  5. Хранилище пользовательских клонов. [уже работает]
  6. Пользователь импортирует рабочую копию в Eclipse [уже работает]

Есть ли уже решение / общий способ решения шага 4? В настоящее время я думаю об использовании git-hook для определения конфигурации репозитория. Тем не менее, кажется, что может потребоваться анализ файла gitosis.conf при каждом вызове post-update .

В идеале я хотел бы использовать некоторую информацию git для заполнения файла pom.xml (имя репозитория в качестве artifactID, описание репозитория в качестве описания артефакта и т. Д.)

Есть ли более удобный / надежный способ получения информации о настроенных, но еще не созданных репозиториях?

1 Ответ

0 голосов
/ 13 октября 2011

Вы можете создать хранилище шаблонов где-нибудь, похожее на это:

$ ls -A
.gitignore
pom.xml
src/.gitignore
setup-remote

Тогда ваш рабочий процесс для новых репозиториев будет выглядеть так:

  • Разработчик клонирует репозиторий шаблонов:

    $ git clone .../template.git my-new-repo
    
  • Разработчик запускает сценарий setup-remote для настройки доступа к фактический удаленный репозиторий:

    $ cd my-new-repo
    $ ./setup-remote
    

А скрипт setup-remote позаботится о:

git remote rm origin
git remote add origin .../my-new-repo.git
git push origin master

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

...