Gitolite克隆不按预期工作

我正在运行一个Debian系统,并且最近使用DEB软件包安装了gitolite

这是我的问题:

我已经尝试克隆gitolite-admin.git存储库(用于为所有希望gitolitepipe理的存储库configurationgitolite安装)。

我的第一次尝试正是如何指示说:

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.gitreplacegitolite-admin,也会发生同样的情况
但是,当我做到以下几点:

 git clone gitolite@server:~/repositories/gitolite-admin.git 

该行成功将存储库克隆到本地工作站。
现在,我没有问题添加额外的文本到文件path,但是我被告知,这是不正确的文档。

以下链接( http://sitaramc.github.com/gitolite/doc/3-faq-tips-etc.html )指出:“在git克隆中的repo名称开头添加存储库”是一个常见的错误/错误。 它还指出:“事实上,gitolite在内部预装$ REPO_BASE,所以你不应该也这样做!”

我的.gitolite.rc文件包含以下行$ REPO_BASE:

 [Located in /home/gitolite/.gitolite.rc] $REPO_BASE="repositories"; 

我的问题是, 我的configuration出了什么问题,导致$ REPO_BASE不能预定我的git克隆?

如果您需要更多信息,请留下评论,说明您需要什么信息,我会很乐意。

其他说明:

  • git版本:1.7.2.3
  • gitolite版本:1.5.4-2〜bp(这是从lenny-backports,因为我使用Debian Lenny和gitolite不符合Lenny标准)
  • Debian的安装创build用户“gitolite”来pipe理gitolite回购。

能够访问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东西bad command: echo normal access

如果你有一个密钥,你可以通过SSH连接到gitolite用户本身,并尝试使用同一个密钥作为Gitolite用户进行身份validation。 gitolite的.ssh/authorized_keys没有任何特殊的前缀,将出现“正常访问”键。 configuration为通过Gitolite的密钥行将以command="/path/to/gl-auth-command gitolite-username",…

如果您需要对gitolite用户和基于Gitolite的访问进行正常的基于SSH的访问,那么您应该为这些目的设置单独的密钥,以便您可以指定要在.ssh/config文件中使用IdentityFile选项的密钥(可能也IdentitiesOnly如果你发现ssh正在使用“错误的”键,只是因为你已经把它加载到你的ssh-agent中 )。

例如:

使用你的“默认”键( ssh默认的一个(例如~/.ssh/id_rsa )或者你通常在你的ssh-agent中加载的一些键)来访问Gitolite(即你有公钥活跃keydir/your-gitolite-user-name.pub )。

生成~/.ssh/gitolite-user用于直接login到gitolite用户。 使用ssh -i ~/.ssh/gitolite-user gitolite@server进行login。 或者,添加一个自定义条目到~/.ssh/config

 Host gitolite-user User gitolite HostName server IdentityFile ~/.ssh/gitolite-user IdentitiesOnly yes 

所以你可以做ssh gitolite-userlogin。

我有这个相同的错误:

 fatal: 'gitolite-admin' does not appear to be a git repository 

回购一直在工作,但回滚使用gitolite恐慌部分中build议的服务器上的克隆后,回购一些文件拥有所有者的根,而不是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 *