2013-10-13 2 views
1

Итак, вот мой случай использования:Git непосредственно совершить файл мерзавец и/или gitlab

Я пытаюсь разработать внутреннее приложение Mac для не-разработчиков в моей команде, чтобы изменить некоторые параметры моей игры , В идеале приложение сможет воссоздать необходимые конфигурационные файлы и напрямую зафиксировать/направить их на мой экземпляр gitlab, что вызовет сборку CI.

Я знаю, что я мог бы программно клонировать мое репо на свою машину, а затем редактировать его программно и фиксировать изменения, но я стараюсь избегать того, чтобы каждый пользователь редактировал несколько файлов, клонирующих 2 + ГБ кода ,

Любые предложения по использованию непосредственно для удаленного репо? В этом случае как пользователь, так и мой сервер могут считаться «доверенными». Благодаря!

ответ

0

Это будет выглядеть так, как будто этот файл конфигурации может находиться в собственном (очень маленьком) хранилище git и храниться в основном репо as a submodule.

Однако, как только субмодуль был отброшен назад, крючок должен убедиться, что родительское репо обновит ссылку на субмодуль (обновление подмодуля git) и добавит + зафиксировать новый SHA1 указанного подмодуля, который был просто нажат.
В противном случае родительский репо не понял бы, что его подмодуль изменился.

Это также означает, что родитель репо должен declare that submodule as following the latest SHA1 of master branch:

git submodule add -b master /url/to/submodule 
+0

Я считал это решение раньше, и в то время как это имеет смысл, как бы что крючок работа? Мне нужно было бы иметь еще одну рабочую копию моего репо на моем сервере, а затем написать сценарий для вытягивания, обновления подмодуля, фиксации и нажатия, нет? –

+0

@SteveKanter Я так считаю, поскольку подмодуль, вероятно, потребует рабочего дерева (что означает, что голого репо было недостаточно) – VonC

0

За то, как ограничено, так как это решение одного-репо также будет работать:

Сделать изменение настроек только для ветви:

git checkout --orphan configs 
rm all but configs 
git add -A 
git commit -mconfigs 
git checkout main 
git push server configs 

В конфигурационных редакторах:

git init configrepo 
git remote add server u://r/l 
git fetch server configs 
git checkout -t server/configs 

# work work, then 
git commit -am "new configs" 
git push 

В рамках вашего телосложения,

git pull -Xtheirs configs 
Смежные вопросы