Gitosis / Gitolite Setup - PullRequest
       10

Gitosis / Gitolite Setup

1 голос
/ 12 февраля 2011

У меня проблема с гитозом и гитолитом, которые я потратил много часов на исследования, но безрезультатно.После тщательного следования инструкциям по настройке для обоих продуктов общий признак состоит в том, что целевое хранилище не находится должным образом через gitosis / gitolite:

Сбой:

$> git clone gitolite@example.com:testing
Cloning into testing...
fatal: 'testing' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Пока это работает:

$> git clone gitolite@example.com:~/repositories/testing
Cloning into testing...
warning: You appear to have cloned an empty repository.

Таким образом, указание полного пути работает, но это указывает на то, что каким-то образом мы не проходим через гитоз / гитолит.

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

$> ssh gitolite@example.com
PTY allocation request failed on channel 0

Кроме того, когда я выполняю "ssh gitolite@example.com info", я продолжаю получать информацию GNU вместо информации gitolite (котораяЯ могу получить, если я запускаю '/ usr / local / bin / gl-auth-command kreeble' как gitolite на сервере).Я подтвердил, что в каталоге .ssh пользователя gitolite есть только одна запись authorized_keys, которая вводит меня в команду gitolite:

command="/usr/local/bin/gl-auth-command kreeble",no-port-forwarding,\
   no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa long_key_base64_here \ 
   user@machine.local

Любые идеи о том, почему я не буду отображаться с приглашением gitolite?Буду признателен за любые мысли по этой проблеме, спасибо!

Ответы [ 2 ]

1 голос
/ 09 июля 2011

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

Без gitolite обычно git устанавливает репозитории в ~ git, но ~ gitolite устанавливает репозитории, например, в. ~ / Gitolite / Хранилища / testing.git.

Насколько я понимаю, требуется суффикс .git.

gitolite@example.com: при тестировании вы попадаете в ~ gitolite / repositories / testing, но я предполагаю, что код написан таким образом, что он считает, что репозиторий должен называться test.git. Так что он считает это ошибкой.

gitolite@example.com: ~ / repositories / testing обходит это правило перезаписи URL, но я предполагаю, что он снова ищет ~ gitosis / repositories / testing.git.

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

Если вы просто добавите суффикс .git, все проблемы исчезнут. По крайней мере, это был мой опыт с гитозом.

Удачи.

1 голос
/ 22 июня 2011

У меня только что возникла эта проблема.Мне показалось странным, что я только что успешно установил gitolite на одной машине Mac OS X, и с такой же установкой он потерпел неудачу на другой машине Mac OS X.Моя конкретная проблема была такой же при попытке клонировать gitolite-admin, но при попытке 'ssh git @ localhost info' она вернула бы информацию gnu вместо информации gitolite.В документации сказано, что эта проблема была вызвана тем, что на сервере использовался неправильный ключ, так что обойтись можно было только из-за gitolite.

Если посмотреть дальше, это не так.Gitolite вызывали нормально, на самом деле использование -vvv как часть команды ssh показало это. Моя проблема была в том, что несколько месяцев назад в попытках заставить работать гитоз или gitolite (я не помню какой) я модифицировал / etc / sshd_config и внизу внизу добавлено « ForceCommand / usr / local / bin / ssh_session ».

Содержимое было:

#!/bin/bash
export SSH_SESSION=1
if [ -z "$SSH_ORIGINAL_COMMAND" ] ; then
  export SSH_LOGIN=1
  exec login -fp "$USER"
else
  export SSH_LOGIN=
  [ -r /etc/profile ] && source /etc/profile
  [ -r ~/.profile ] && source ~/.profile
  eval exec "$SSH_ORIGINAL_COMMAND"
fi

Это привело к тому, что ssh обошел некоторые пути для gitolite и заставил их без промедления перейти к оболочке.Так как возможно, что я пытался сделать это в более старых попытках заставить либо гитоз, либо работать с гитолитом, возможно, что другие уже пробовали это ранее и теперь получают эту ошибку из-за этого.

...