我可以在Windows的非默认端口上使用gitolite存储库吗?

时间:2011-12-30 23:58:01

标签: git ssh cmd msysgit gitolite

我正在尝试在我的linux服务器上设置一些git存储库,以便与一些从事Java项目的朋友分享。我嗅了一下,发现gitolite应该是一个很好的管理层,所以看完他们的文档后我决定按照这个教程:

http://sites.google.com/site/senawario/home/gitolite-tutorial

一切顺利,直到第6步。在那里,用于存储库路径的语法不起作用,因为服务器上的sshd没有监听默认端口,并且该语法不喜欢非默认端口,所以之后更多的研究我很快发现git支持ssh://等。唯一的问题是它需要将完整的存储库路径包含在URL中。

当我到达第7步并且管理库无法推送时,我发现gitolite不喜欢完整的路径。故障排除部分建议我创建一个类似的主机别名:

http://sitaramc.github.com/gitolite/sshhostaliases.html

这应该允许我使用hostalias:reponame作为路径。尽管要求每个用户都这样做很麻烦,但我们采用了这种方法,只是发现它根本不起作用。我们的用户正在运行windows和msysgit。

总结:

  • 服务器的sshd侦听非默认端口;这是无法改变的。
  • gitolite似乎需要相对路径。相对路径仅在默认端口或使用主机别名时可用。
  • 我们的用户正在运行Windows 7(不可更改)和msysgit(可更改,如果有更好的东西吗?)。我们的设置似乎不喜欢主机别名。

是否有解决方案或我们是否必须放弃噱头并找到别的东西?

1 个答案:

答案 0 :(得分:0)

查看编辑~/.ssh/config(来自msysgit)是否适用于每个用户。在~/.ssh/config文件中添加以下内容:

Host gitserver
Port 9999

文件~/.ssh/config是可选的,如果存在,则由ssh使用。此外,~/.ssh目录不得向其他人(chmod 700 ~/.ssh)读取。

当使用gitolite访问git repo serverd时,你实际上正在使用ssh传输。为了确保ssh(和间接git)使用文件~/.ssh/config,您可以尝试以下诊断:

$ ssh -v gitserver

debug1:前缀开头的前几行将告诉您ssh是否正在使用~/.ssh/config文件 - 它将显示它使用的配置文件的完整路径。