Подтвердить что ты не робот

Gitolite push error → remote: ENV GL_RC не установлен

Я пытаюсь вывести контент с рабочей станции на сервер. Но это дает мне ошибку. Для команды и ошибки выполните следующие действия:

[email protected] ~/testing  
$ git push origin master  
Counting objects: 3, done.  
Writing objects: 100% (3/3), 241 bytes, done.  
Total 3 (delta 0), reused 0 (delta 0)  
remote: ENV GL_RC not set  
remote: BEGIN failed--compilation aborted at hooks/update line 20.  
remote: error: hook declined to update refs/heads/master  
To [email protected]:repositories/testing  
 ! [remote rejected] master -> master (hook declined)  
error: failed to push some refs to '[email protected]:repositories/testing'  

Кажется, мне нужно установить переменную окружения GL_RC. Это так?

Может ли кто-нибудь здесь рассказать мне, что может быть проблемой и как я могу ее решить? Я использую gitolite на Windows Server 2003.

4b9b3361

Ответ 1

Как показано в документе ssh troubleshooting, это, вероятно, вызвано неправильным путем во время клонирования.

Документация (некоторые части ниже были действительны только для Gitolite V2):

Вторая ошибка

(т.е. вы можете клонировать репозитории, но не можете отбрасывать изменения назад (ошибка возникает из-за того, что переменная среды GL_RC не установлена, а перехват/обновление в некотором роде не работает)

происходит, если вы используете [email protected]:repositories/reponame.git (при условии, что значение по умолчанию $REPO_BASE - в Gitolite V3, оно всегда ~/repositories) - то есть вы использовали полный путь unix.
Так как "префикс", упомянутый выше, не требуется, оболочка находит репо и клоны в порядке.
Но когда вы нажимаете, gitolite update hook запускается и не запускается, потому что некоторые переменные среды, которых он ожидает, отсутствуют.

Сообщение, которое появляется при успешном запуске программы "простая установка", содержит следующее предупреждение:

*Your* URL for cloning any repo on this server will be
        gitolite:reponame.git

    *Other* users you set up will have to use
        <user>@<server>:reponame.git
    However, if your server uses a non-standard ssh port, they should use
        ssh://<user>@<server>:<port>/reponame.git

Итак, в вашем случае вы должны клонировать свое репо с помощью:

git clone [email protected]:repositories/testing.git

вместо:

[email protected]:testing.git

Ответ 2

Просто полученная ошибка.

Правильный ответ: вам нужно использовать команду git clone gitolite:repo_name, чтобы клонировать репозиторий и git push gitolite:repo_name, чтобы нажимать изменения вместо git clone [email protected]:repo_name.

Ответ 3

Документ по поиску и устранению неисправностей ssh ​​на http://sitaramc.github.com/gitolite/doc/ssh-troubleshooting.html (а также в исходном репозитории gitolite) теперь полностью переработан. Я надеюсь, что он течет намного лучше и объясняет, что это проще, включая эту конкретную ошибку.

Я также добавлю, что вы должны идеально читать этот документ в полном объеме, по крайней мере в первый раз.

Ситары

Ответ 4

Попробуйте:

ssh [email protected]

Вы должны увидеть гитолит-оболочку вместо bash:

ssh [email protected]

PTY allocation request failed on channel 0 hello
id_rsa, the gitolite version here is 2.0.3-2 (Debian) the gitolite
config gives you the following access:
     R   W  gitolite-admin
    @R_ @W_ testing
Connection to localhost closed.

Если это не означает, что вы обходите гитолит-оболочку и вместо этого используйте bash. Причина может заключаться в том, что, запустив gl-setup your_pub_key.pub, вы добавили свой ключ в конец файла /home/ git/.ssh/authorized_keys.

Поэтому этот ключ никогда не достигается, потому что в верхней части находятся другие клавиши. Итак, вам просто нужно открыть /home/ git/.ssh/authorired_keys и перенести недавно добавленный гитолит-ключ в верхнюю часть файла.

После перемещения этой записи в верхнюю часть файла вы сможете использовать: git клон git @ganesh: testing.git insead of git клон git @ganesh: репозитории /test.git Второй клонирует репо, но приводит к ошибке, потому что вы запускаете "git push" через bash вместо gitolite-shell