Gitolite Git Clone Ошибка - PullRequest
       5

Gitolite Git Clone Ошибка

6 голосов
/ 18 февраля 2011

Я пытаюсь настроить gitolite на моем сервере (сервер Macos).

Я следовал инструкциям в документе INSTALL, найденном здесь: http://sitaramc.github.com/gitolite/doc/1-INSTALL.html

Я установил метод root.

У меня все настроено (аутентификация по ssh pubkey и настройка по умолчанию gitolite)

$ssh git@server info
hello admin, the gitolite version here is v1.5.9.1-27-gb97115f
the gitolite config gives you the following access:
     R   W  gitolite-admin
    @R_ @W_ testing

В соответствии с инструкцией по установке я должен иметь возможность проверить хранилище.

Но когда я пытаюсь клонировать репозиторий gitolite-admin, я получаю ошибку:


$ git clone git@server:gitolite-admin
Cloning into gitolite-admin...
Assertion failed: (argv0_path), function system_path, file exec_cmd.c, line 27.
error: git-shell died of signal 6
fatal: The remote end hung up unexpectedly

Я получил последнюю версию git gitolite и git v. 1.7.3.4

Кто-нибудь может мне помочь?

Редактировать 1: добавлена ​​команда git clone перед сообщением об ошибке

Ответы [ 7 ]

8 голосов
/ 07 ноября 2011

Похоже, что правильным решением этой ошибки является добавление

$ENV{GIT_EXEC_PATH} = "/usr/libexec/git-core";

в файл .gitolite.rc.

7 голосов
/ 18 февраля 2011

OP skipper3k сообщает проблема с RUNTIME_PREFIX в Git, немного похожая на вопрос "git pull broken ":

Я не уверен, определен ли RUNTIME_PREFIX для вас. Но, обнюхивая в Makefile, я заметил, что префикс по умолчанию равен $(HOME). Я подозреваю, что это может быть причиной ваших проблем.

Простой ответ - поместить это в ~/.bashrc:

export GIT_EXEC_PATH=/opt/local/libexec/git-core

Если вы хотите узнать больше о том, что происходит, вам, вероятно, придется перекомпилировать git, используя port -d upgrade -f git-core (или аналогичный), и внимательно посмотреть в журнал сборки, чтобы увидеть, где находится префикс установлен.
Кстати, port cat git-core показывает интенсивное использование ${prefix}.


Оригинальный ответ:

Во-первых, вы получили самую последнюю версию гитолита?
В https://github.com/sitaramc/gitolite/, вам нужно рассмотреть ветвь 'pu'.

Документация по установке - это .


GitoliteV3 или 'g3' doc:

«Установка» состоит из следующих опций:

  1. Храните источники где угодно и используйте полный путь для запуска команды gitolite.
  2. Храните исходные тексты в любом месте и используйте символическую ссылку только на программу gitolite в какой-то каталог в вашем $ PATH.
  3. Скопируйте источники куда-нибудь и используйте этот путь для запуска команды gitolite.

Вы можете запустить команду 'install' тремя различными способами:

# option 1
gitolite/install

# option 2
gitolite/install -ln
# defaults to $HOME/bin, or use a specific directory:
gitolite/install -ln /usr/local/bin

# option 3
gitolite/install -to /usr/local/gitolite/bin

Старый ответ для Gitolite V2: Во-вторых, я предпочитаю метод " от клиента " метод:

Преимущество этого метода в том, что он заставляет вас решить проблему с ssh pubkey перед попыткой установки.
Лучше всего, если у вас есть выделенные идентификаторы пользователей,

  • один на сервере для установки гитолита,
  • и один на клиенте для администрирования.

Недостатком является то, что администратор получает две клавиши

  • один для доступа к оболочке (с которого он начал) и
  • один для доступа к gitolite (который скрипт создает при необходимости).

Поэтому мне нравится создавать файл ~/.ssh/config с двумя различными наборами параметров:

host gitolite
     user git
     hostname server
     identityfile ~/.ssh/git
host gitadmin
     user git
     hostname server
     identityfile ~/.ssh/id_rsa (myaccount public key)

gitolite-admin виден только для первого открытого ключа ssh:

C:\HOMEWARE\git>ssh gitolite
hello git, the gitolite version here is v1.5.9-25-ga10287a
the gitolite config gives you the following access:
     R   W      gitolite-admin
    @R_ @W_     testing
Connection to server closed.

С моей учетной записью:

C:\HOMEWARE\git>ssh gitadmin
hello myaccount, the gitolite version here is v1.5.9-25-ga10287a
the gitolite config gives you the following access:
    @R_ @W_     testing
Connection to mccprdgit10 closed.

Итак:

C:\HOMEWARE\git>git clone gitolite:gitolite-admin
Cloning into gitolite-admin...
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 16 (delta 2), reused 0 (delta 0)
Receiving objects: 100% (16/16), done.
Resolving deltas: 100% (2/2), done.
2 голосов
/ 02 июля 2012

Я в значительной степени попробовал все, что мог придумать, и не смог заставить его работать ... пока я не заметил где-то, что у GIT очень много адресов электронной почты ..., поэтому я сгенерировал свою пару ключей ssh ​​с помощью опции -C

ssh-keygen -t rsa -C "nospam@nowhere.org"

Низко и вот, вдруг я мог без проблем клонировать gitolite-admin.

Очевидно, что электронное письмо в user.email ключ .gitconfig ДОЛЖНО соответствовать электронному письму, которое использовалось для генерации ключа SSH. Честно говоря, если у вас есть только одна пара ключей в папке .ssh, с какой стати важно, что электронная почта соответствует? Имхо, если вы передадите ключ, а ключ находится в авторизованных ключах на сервере, он должен работать независимо от свойства .gitconfig user.email.

2 голосов
/ 23 февраля 2011

Проблема была в том, как git был скомпилирован на Mac. Мне пришлось вручную скомпилировать git без набора RUNTIME_PREFIX. Теперь это работает.

0 голосов
/ 14 августа 2012

В качестве решения для Gitolite v3 для Mac Lion, это то, что мне помогло:

$ ENV {PATH} = "/ usr / local / bin: $ ENV{PATH} ";

Добавьте его в ~ / .gitolite.rc для пользователя git на сервере .Убедитесь, что это перед "1;"в конце.

Как указано в: https://serverfault.com/questions/307493/cant-clone-gitolite-admin

Решения, связанные с GIT_PATH, устарели, согласно: http://sitaramc.github.com/gitolite/g2migr.html

0 голосов
/ 07 мая 2012

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

Кроме того, для sshтест, вы должны отключить PTY в командной строке, иначе ssh просто не будет работать - я думаю, что, возможно, он работал с более старыми версиями ssh, но не работает ни с чем у меня:

$ ssh git@hugo
PTY allocation request failed on channel 0

$ ssh -T git@hugo
hello key, this is git@hugo running gitolite3 v3.01-10-g699bafa on git 1.7.10

(почему он думает, что меня называют «ключом» - это еще одна проблема конфигурации, которую я еще не решил).

0 голосов
/ 18 февраля 2011

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

Я рекомендую вам прочитать эти две ссылки, они были полезны для меня, когда я установил gitolite:

http://kris.me.uk/2010/09/30/git-repository-server-gitolite.html (особенно этот)

http://progit.org/book/ch4-8.html

...