gitosis + git error: fatal: «/home/git/repositories/idea-generator.git» не является репозиторием git - PullRequest
3 голосов
/ 08 августа 2010

Я пытался следовать инструкциям по использованию gitosis для управления моими git проектами. Помимо одной небольшой проблемы, я успешно установил Гитоз .

Проблема возникает, когда я пытаюсь создать свой первый git-проект (после настройки и настройки проекта с помощью gitosis). Я получаю следующую ошибку при отправке в удаленный репозиторий git:

fatal: '/home/git/repositories/idea-generator.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Это последовательность команд, которые я выполняю для установки gitosis и запуска моего первого проекта от начала до конца. Я запускаю эти команды на одном сервере. На данный момент моя машина разработки является центральным репозиторием git, но в какой-то момент станет автономным сервером, предназначенным для git и некоторых других проектов.

ОС: Ubuntu 10.04 мерзавец: 1.7.0.4 питон: 2.6.5

cd /home/rdn/projects
git clone git://eagain.net/gitosis.git
cd gitosis
sudo python setup.py install
sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git

sudo -H -u git gitosis-init < /home/rdn/.ssh/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
cd ..

# At this point I can't use the instructed 'git clone git@Frankenstein:gitosis-admin.git' as it complains that "fatal: 'gitosis-admin.git' does not appear to be a git repository"
git clone git@Frankenstein:/home/git/repositories/gitosis-admin.git
cd gitosis-admin
gedit gitosis.conf
# added following entries to ../gitosis-admin/gitosis.conf
# [gitosis]
# loglevel = DEBUG
# repositories = /home/git/repositories
#
# [group gitosis-admin]
# writable = gitosis-admin
# members = rdn@Frankenstein
#
# [group idea-generator]
# writable = idea-generator
# members = rdn@Frankenstein

git commit -a -m "created first repository"
git push
cd ..

rails new idea-generator
cd idea-generator
git init
git remote add main_project git@Frankenstein:/home/git/repositories/idea-generator.git
git add .
git commit -a -m "initial project creation"
git push main_project master:refs/heads/master

Обновление

Единственный способ, которым я смог это исправить, - это войти на удаленный сервер и создать удаленный репозиторий следующим образом:

В качестве пользователя git в хранилище Gitosis создайте удаленный голый проект:

git:~ cd /home/git/repositories
git:~ mkdir idea-generator.git
git:~ cd myapp.git
git:~ git --bare init

Как пользователь коммиттера (в моем случае rdn), зафиксируйте и отправьте только что созданный проект .

rdn:~ cd /home/rdn/projects/idea-generator
rdn:~ git init
rdn:~ git remote add main_project git@Frankenstein:/home/git/repositories/idea-generator.git
rdn:~ git add .
rdn:~ git commit -a -m "initial project creation"
rdn:~ git push main_project master:refs/heads/master

Все учебники и документация, которые я прочитал, оставили этот важный шаг. Возможно, в других дистрибутивах этот шаг не является необходимым, но в моем случае я счел это необходимым. Надеюсь, кто-нибудь сможет ответить на этот начальный вопрос и определить, какие шаги нужно изменить, чтобы исходные учебники работали под Ubuntu 10.04.

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Если вы можете получать / отправлять репо с полными путями (/home/git/repositories/idea-generator.git), то вы полностью обходите gitosis, включая любые проверки его доступаможет навязать.С таким же успехом вы можете не использовать гитоз, хотя все хорошее, что оно вам приносит.

Это также причина, по которой пуш не создавал для вас автоматическое репо - гитоз был обойден, так что никакого авто-create.

Правильное использование gitosis означает, что ваши URL будут выглядеть как git @ Frankenstein: gitosis-admin.git (так как вы сказали, что вам удалось успешно клонировать это).

0 голосов
/ 08 августа 2010

Я только что успешно выполнил урок. Мой сервер 'valkyrie' работает под управлением Ubuntu 10.4, а мой клиент 'with' - OS X 10.6.1. Убедитесь, что вы используете клиентский ключ rsa / dsa, а не ваш сервер. Вот мой пример:

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIw...== mwilliamson@wraith" | sudo -H -u git gitosis-init
...