Gitolite git clone错误

时间:2011-02-18 12:04:57

标签: git gitolite

我正在尝试在我的服务器上安装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

我得到了最新的gitolite gitolite和git v.7.3.3.4

有人能帮助我吗?

编辑1:在错误消息

之前添加了git clone命令

7 个答案:

答案 0 :(得分:8)

似乎正确修复此错误是添加

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

到你的.gitolite.rc文件。

答案 1 :(得分:7)

OP skipper3k reports Git中RUNTIME_PREFIX的问题,有点类似于“git pull broken”问题:

  

我不确定是否为您定义RUNTIME_PREFIX。但是在Makefile中输入时,我确实注意到前缀默认为$(HOME)。我怀疑这可能是你问题的原因。

     

简单的答案是将其放在~/.bashrc

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

如果您想了解有关正在发生的事情的更多信息,您可能需要使用port -d upgrade -f git-core (或类似)重新编译git,并仔细查看构建日志以查看正在设置前缀   顺便说一下,port cat git-core显示${prefix}的大量使用。


原始答案:

首先,您是否获得了最新的gitolite版本? 在https://github.com/sitaramc/gitolite/,您需要考虑“ pu ”分支。

installation documentation is then this one


GitoliteV3 or 'g3' doc:

  

“安装”包含以下选项:

     
      
  1. 将源保留在任何位置,并使用完整路径运行gitolite命令。
  2.   
  3. 将资源保存在任何地方,并将符号链接程序符号链接到$ PATH上的某个目录。
  4.   
  5. 将源复制到某处并使用该路径运行gitolite命令。
  6.         

    您可以通过3种不同的方式运行'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的旧答案: 其次,我更喜欢 from-client method 方法:

  

此方法的优点是它会强制您在尝试安装之前解决ssh pubkey问题   如果您有专用的用户标识,它最有效,

     
      
  • 用于安装gitolite的服务器上的一个,
  •   
  • 和客户端上的一个用于管理它。
  •   
     

缺点是管理员用户最终有两个键

     
      
  • 一个用于shell访问(他开始使用)和
  •   
  • 一个用于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 :(得分:2)

问题在于git是在mac上编译的。我不得不在没有设置RUNTIME_PREFIX的情况下手动编译git。现在它有效。

答案 3 :(得分:2)

我几乎尝试过任何我能想到的东西,并且无法让它工作......直到我注意到某个地方GIT的电子邮件地址非常高......所以我使用-C选项重新生成了我的ssh密钥对:

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

很低,突然之间,我可以毫无问题地克隆gitolite-admin。

显然,.gitconfig的 user.email 中的电子邮件必须与用于生成SSH密钥的电子邮件相对应。老实说,如果你的.ssh文件夹中只有1个密钥对,那么为什么电子邮件对应呢? Imho,如果你传递一个密钥并且密钥在服务器上的authorized_keys中,它应该可以工作,无论.gitconfig user.email属性。

答案 4 :(得分:0)

不确切地知道您的安装存在哪个问题,了解您执行哪些命令以在您的服务器中安装gitolite将会很有用。

我建议你阅读这两个链接,当我安装gitolite时,它们对我很有帮助:

http://kris.me.uk/2010/09/30/git-repository-server-gitolite.html(特别是这一个)

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

答案 5 :(得分:0)

在忘记前两次之后刚刚处理了第三次时间,我认为这并不罕见。

$ git clone git@hugo:gitolite-admin
Cloning into gitolite-admin...
fatal: The remote end hung up unexpectedly

至少有一个原因是,gitolite用户必须拥有登录shell - 使得系统用户由于某种原因不能正常工作......它只会摔倒,导致上述错误。

另外,对于ssh测试,你必须在命令行上关闭PTYs,否则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

(为什么它认为我被称为'密钥'是我还没有解决的另一个配置问题)。

答案 6 :(得分:0)

对于Mac Lion来说,作为Gitolite v3的解决方案,这对我有用:

  

$ 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