Gitosis якось так або половина авторів мудаки.
Post date: Aug 12, 2010 1:35:14 PM
Е така штука зветься гітосіс. Колись вона взагалі не пахала, але останім часом наче на ньому можна щось підняти.
Берем цю фігню із танка:
git clone git://eagain.net/gitosis.git
cd gitosis
sudo python setup.py install
Або якщо ви використовуєте дебіан/убунту
apt-get install gitosis
Далі необхідно це все налаштувати. То спершу треба створити користувача від імені якого все це буде крутитись на сервері (назвемо його якось по дурному, наприклад gituser).
useradd gituser
Для роботи із гітосісом нам також знадобиться ssh key. Якщо такого ще немає то заводим його:
ssh-keygen
Отриманий таким чином ключ необхідно скормити гітосісу при ініціалізації:
sudo -H -u git gitosis-init < ~/.ssh/id_rsa.pub
Далі нам треба склонувати репо із всіма налаштуваннями цього звіра:
git clone gituser@your.server.com:gitosis-admin.git
І тільки після всіх цих маніпуляцій ми можемо перейти до додавання нових користувачів, груп та репозитарієв.
Що ж почнемо із груп та користувачів. Для цього відкриваємо файл gitosis.conf і дописуємо туди:
[group usersGroup]
members = vany@host1 igor@host2 vany@host2
writable = repo_name
Тут ми додали три юзери і сказали, що ці невдахи можуть писати у репо із назвою repo_name.
Зараз ми ще опишемо власне це репо.
[repo repo_name]
gitweb = no
description = Goagle web site
owner = Vany Ivanov
daemon = no
Що це все значить я поняття не маю так що не питайте.
Остаточний вигляд gitosis.conf є таким:
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = gituser@localhost vany@host2
[group usersGroup]
members = vany@host1 igor@host2 vany@host2
writable = repo_name
[repo repo_name]
gitweb = no
description = Goagle web site
owner = Vany Ivanov
daemon = no
Але аби ці юзери могли туди взагалі по ssh дістатись необхідно їх публічні ключі запхати у папку keydir.
cp ~/vany.pub keydir/
git add .
git commit -am "Add vanys pub key"
git push
Здавалось би наче все готово і можна йти напрягати юзерів аби працювали, але дідько лисого. Спершу треба створити репо і запхати його на сервер. Отож туду некст:
mkdir repo_name
cd repo_name
git init
git remote add origin gituser@your.server.com:repo_name.git
touch some.file
git add .
git commit -am "Initial commit"
git push origin master
Оце ми тут щойно створили папку для проекта, ініціювали там репозиторій гітівський, додали remote origin (тобто куди пушати наші зміни), створили пустий файл (бо десь є проблеми із пустими репозиторіями), закомітали це і надіслали на наш сервер.
Якщо у вас все вийшло у вас баги і дотого ж багато.
А якщо як і у мене воно все навернулось, то прошу читати далі.
Отож для того аби це лайно завертілось необхідно його змити...:
прописати юзеров через коми; (Оце якраз була дуже погана думка)створити групу і там прописати юзеров;
описати параметри самого репо;
Отож остаточній варіант буде виглядати приблизно так:
[gitosis]
loglevel = DEBUG
[group gitosis-admin]
writable = gitosis-admin
members = gituser@localhost vany@host2
[group usersGroup]
members = vany@host1 igor@host2 vany@host2
writable = repo-name
[repo repo-name]
gitweb = no
description = Goagle web site
owner = Vany Ivanov
daemon = no
А папку із репо перейменувати на бла-бла.
Далі можна спокійно створено й перейменоване репо заливати на сервер.
Опція loglevel = DEBUG дуже корисна якщо у вас все одно нічого не виходить або просто цікаво подивитись як то все працює.
Також гамнети стверджують, що інколи треба робити це:
chmod 755 /home/gituser/repositories/gitosis-admin.git/hooks/post-update
Але наскільки то є правда підтвердити або спростувати було лінь (але ця фігня в конкретному випадку не допомогла)
ПС на просторах гамнета ніякої адекватної інформації знайдено не було.
ППС аффтари статей про гітосіс стрибніть зі скали
ПППС аффтари гітосіса див вище
ППППС аффтар цієї статті приєднується до всіх аффтарів статтей про гітосіс тобто до мудаків....