Я использую систему Debian и недавно установил gitolite с помощью пакета DEB.
Вот моя проблема:
Я попытался клонировать репозиторий gitolite-admin.git (который используется для настройки установки gitolite для всех репозиториев, которыми вы хотите, чтобы gitolite управлял за вас).
Моя первая попытка была именно так, как указано в инструкциях:
git clone gitolite@server:gitolite-admin
Я получил следующую ошибку:
fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Примечание. То же самое произойдет, если я заменю gitolite-admin на gitolite-admin.git.
ОДНАКО, когда я делаю следующее:
git clone gitolite@server:~/repositories/gitolite-admin.git
Эта строка успешно клонирует репозиторий на мою локальную рабочую станцию.
Теперь у меня нет проблем с добавлением лишнего текста в путь к файлу, однако мне говорят, что это неверно в документации.
По следующей ссылке ( http://sitaramc.github.com/gitolite/doc/3-faq-tips-etc.html ) заявляет, что «добавление репозиториев / в начало имени репо в клоне git» является распространенной ошибкой / ошибкой. В нем также говорится, что «На самом деле гитолит добавляет $ REPO_BASE внутри, поэтому вам не следует делать то же самое!»
Мой файл .gitolite.rc содержит следующую строку для $ REPO_BASE:
[Located in /home/gitolite/.gitolite.rc]
$REPO_BASE="repositories";
У меня вопрос, что не так с моей конфигурацией, из-за чего $ REPO_BASE не добавляет мой клон git?
Если вам нужна дополнительная информация, оставьте комментарий, указав, какая информация вам нужна, и я буду счастлив помочь.
Прочие примечания:
Возможность доступа gitolite@server:~/repositories/gitolite-admin.git
, но нет gitolite@server:gitolite-admin
указывает, что вы не проходите через Gitolite, а просто используете простой доступ на основе SSH к пользователю gitolite.
Если ssh gitolite@server echo normal access
дает normal access
, то используемый вами ключ не ограничивается Gitolite. Если бы вы проходили через Gitolite, вы бы увидели что-то вроде bad command: echo normal access
.
Это может произойти, если у вас есть ключ, который вы используете для SSH в самом пользователе gitolite, и вы пытаетесь использовать тот же ключ для аутентификации в качестве пользователя Gitolite. Ключ «нормального доступа» будет присутствовать в гитолите .ssh/authorized_keys
без специального префикса. Строка для ключа, настроенного для прохождения Gitolite, будет начинаться как command="/path/to/gl-auth-command gitolite-username",…
.
Если вам нужен обычный доступ на основе SSH к пользователю gitolite и доступ на основе Gitolite, вам следует настроить отдельные ключи для этих целей, чтобы вы могли указать, какой ключ вы хотите использовать с IdentityFile
варианты в вашем .ssh/config
файл (возможно также IdentitiesOnly
если ты найдешь это ssh использует «неправильный» ключ только потому, что он уже загружен в ssh-агент).
Например:
Используйте один из ключей по умолчанию (один из sshЗначения по умолчанию (например, ~/.ssh/id_rsa
) или какой-то ключ, который вы обычно загружали в свой ssh-агент) для доступа к Gitolite (т.е. у вас есть открытый ключ в активном keydir/your-gitolite-user-name.pub
).
Генерировать ~/.ssh/gitolite-user
для использования при прямом входе в систему пользователем gitolite. Использовать ssh -i ~/.ssh/gitolite-user gitolite@server
чтобы залогиниться. Или добавьте настраиваемую запись в ~/.ssh/config
:
Host gitolite-user
User gitolite
HostName server
IdentityFile ~/.ssh/gitolite-user
IdentitiesOnly yes
так что ты можешь просто сделать ssh gitolite-user
чтобы залогиниться.
У меня была такая же ошибка:
fatal: 'gitolite-admin' does not appear to be a git repository
Репо работало, но после отката с использованием клонирования на сервере, как было предложено в разделе gitolite panic, у пары файлов в репо был root-владелец вместо gitolite3.
gitolite-admin.git# ls -l
total 48
drwx------ 2 gitolite3 gitolite3 4096 Mar 27 2012 branches
-rw-r--r-- 1 gitolite3 gitolite3 6 Mar 27 2012 COMMIT_EDITMSG
-rw------- 1 gitolite3 gitolite3 119 Jul 12 2013 config
-rw-r--r-- 1 gitolite3 gitolite3 73 Aug 25 2013 description
-rw-r--r-- 1 gitolite3 gitolite3 128 Aug 23 20:44 gl-conf
-rw------- 1 root root 23 Aug 26 13:45 HEAD
drwx------ 2 gitolite3 gitolite3 4096 Aug 25 2013 hooks
-rw------- 1 root root 605 Aug 26 13:45 index
drwx------ 2 gitolite3 gitolite3 4096 Mar 27 2012 info
drwxr-xr-x 3 gitolite3 gitolite3 4096 Mar 27 2012 logs
drwx------ 83 gitolite3 gitolite3 4096 Aug 26 14:01 objects
drwx------ 4 gitolite3 gitolite3 4096 Mar 27 2012 refs
Исправление состоит в том, чтобы снова сменить владельца на gitolite3.
gitolite-admin.git# chown -R gitolite3:gitolite3 *