Git: клонирование локального репозитория gitosis - PullRequest
1 голос
/ 12 февраля 2011

Я настроил git-репозиторий с gitosis на моем сервере Ubuntu 10.04, используя следующее руководство: http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

Работает нормально, я могу клонировать конфигурацию на свой настольный компьютер Ubuntu 10.10 и вносить изменения в нее.

Это нормально, но я делаю большую часть кода на сервере. Поэтому мне нужно будет клонировать репозиторий configuration / gitosis-admin.git и другие репо локально.

git clone --local file: ///home/git/repositories/gitosis-admin.git дает мне: фатальный: «/home/git/repositories/gitosis-admin.git» не является репозиторием git фатальный: удаленный конец неожиданно зависает

Я добавил пользователя своего сервера в группу git и получил: Неустранимый: не удалось открыть '/home/git/repositories/gitosis-admin.git/objects': разрешение отклонено

Затем я попытался сделать открытый ключ на сервере и, добавив его в ключи администратора репо, добавил имя пользователя, как (user), так и (user) @ (hostname) в конфигурации, чтобы: git clone git @ localhost: gitosis-admin.git или git clone git @ (имя хоста): gitosis-admin.git оба из которых запрашивают у меня пароль git @ (hostname)

Когда я возвращаюсь на рабочий стол и проверяю репозиторий gitosis-admin, gitosis.conf перечисляет: [Gitosis]
[группа gitosis-admin]
доступный для записи gitosis-admin
members = (desktopUN) @ (desktopHostname) (serverUN) @ (serverHostname)

но на сервере, если я получаю root в /home/git/repositories/gitosis-admin.git/ и cat gitosis.conf, он перечисляет [Gitosis]
[группа gitosis-admin]
доступный для записи gitosis-admin
members = (desktopUN) @ (desktopHostname)

Я не могу разобраться с этим, как мне настроить это так, чтобы оно работало так, как я хочу. Велика вероятность того, что за всем этим стоит какой-то кашель с нубом, но я потратил 5 часов, пытаясь заставить это работать, и у меня уходит 2 минуты на настройку репозитория SVN. Так что я теряю терпение ..

Спасибо

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

Я хочу дать подробный ответ на этот вопрос, потому что мне просто нужно было использовать локальный клон gitosis-admin, чтобы заставить чью-либо установку работать правильно.Я думаю, что другие пользователи могут прийти сюда в поисках помощи, чтобы выяснить, что делать, если вам нужно отредактировать gitosis-admin, но ТОЛЬКО иметь локальный root-доступ к файловой системе, в которой находятся репозитории. Если вы попали сюдаВаша интуиция хороша тем, что вы можете клонировать и локально редактировать репозиторий gitosis-admin.Чтобы все работало, вы должны быть осторожны с тем, как вы это делаете.Вот шаги:

Предварительные условия:

  • Вы - root.
  • Вы хотите предоставить $USER gitosis-admin доступ;$USER является действительным пользователем.
  • Репозиторий gitosis-admin находится на $PATH.(В Ubuntu это обычно /srv/gitosis/repositories/gitosis-admin.git)
  • $PATH принадлежит пользователю "gitosis".

Шаги:

  1. Если они неу вас его еще нет, сгенерируйте пару ключей для пользователя, которому вы хотите предоставить доступ gitosis-admin.
    sudo -H -u $USER ssh-keygen
  2. Создание локального клона репозитория gitosis-admin в качестве пользователя gitosis.
    sudo -H -u gitosis git clone $PATH
  3. Добавить новый открытый ключ.
    sudo -H -u gitosis cp ~$USER/.ssh/id_rsa.pub ./gitosis-admin/keydir/$USER.pub
  4. Отредактируйте конф. Gitosis-admin по мере необходимости.
    sudo -H -u gitosis nano ./gitosis-admin/gitosis.conf
  5. Фиксируй как пользователь гитоза.
    sudo -H -u gitosis git commit -am "Adding $USER" ./gitosis-admin
  6. Нажмите как пользователь гитоза.
    sudo -H -u gitosis git push ./gitosis-admin
  7. Запустите перехваты после обновления как пользователь gitosis.
    sudo -H -u gitosis GIT_DIR=$PATH $PATH/hooks/post-update
1 голос
/ 12 февраля 2011

Вам необходимо либо добавить открытый ключ ssh пользователя на сервере в gitosis, либо скопировать закрытый ключ ssh с рабочего стола пользователю на сервере и использовать его.

Извините, я вроде как сначала снял вопрос.Как вы установили гитоз?Я помню, что была общая проблема, когда во время установки требуемый хук в репозитории gitosis-admin не был установлен как исполняемый.В результате он никогда не обновлял конфигурацию при нажатии на.

Также вы должны когда-либо получать доступ к репозиториям, размещенным с помощью gitosis, через SSH, а не через локальную файловую систему, но вы, похоже, уже поняли эту часть.*

Кроме того, если вы не знаете, гитоз не поддерживается и не рекомендуется в пользу гитолита .

...