2013-01-31 92 views
2

知道如何在Gitolite上使用Google的go language语言获取命令吗? 它与谷歌代码和Github上的伟大工程如下:使用go语言与gitolite

去拿code.google.com/p/go.example/hello

去拿github上。 COM/alphazero/GO-Redis的

但我gitolite访问看起来更像:

混帐混帐克隆@ mygitolite:myproject的

有什么建议?

+0

您的gitolite服务器是否也通过http(s)提供服务?我以前没有用过,但似乎'go get'使用http(s)而不是ssh。假设你可以'git clone http(s):// mygitolite/myproject',你应该可以'去获得mygitolite/myproject'。 – cjc343

+0

我不太确定它是如何连接的。如果我明确地把https://或ssh://失败了。它似乎需要git clone git @ myserver:myproject。你知道我可以在这里找到更多吗? –

+0

@ cjc343:你可能已经间接地回答了我的问题:http://stackoverflow.com/questions/7543651/git-urls-with-gitolite?rq=1描述gitolite一个类似于我的情景,gitolite似乎在运行没有git或http(s)服务器。 下一步是安装一个git守护进程。 –

回答

3

它与gitolite无关。
Gitolite只是一个authorization layer,它将接受或拒绝您的git clone/push/pull命令,具体取决于您的用户名。

如果你可以声明一个git repo作为源代码,你可以使用它。
Gitolite只会检查你是谁,但不会影响回购是如何与go一起使用的。


OP Peter Krnjevicrefines the issue

配合去的东西,是它拉回购的名字从目录结构,所以例如:

~/gocode/src/github.com/me/myproject 

是自动转换成

git clone github.com/me/myproject. 

但如何才能gitolite名被转换成路径?

我不认为你需要改变什么:如果走的是能够联系您的git回购(GitHub的或任何其他托管回购服务器),gitolite将截取命令并验证它(或否认这一点) 。
你可以使用https将gitolite插入到ssh之上或(如go进行git请求的情况)。

但主要的一点是:

  • gitolite是在服务器端
  • ,你应该与Apache服务器(如,例如,with my config),而不是SSH使用它,如果你想轻松让您的回购进入进口。
+0

您的评论重新授权是有道理的:gitolite似乎验证我的用户名,我怀疑我有一把钥匙,虽然我不记得确实。 –

+0

与之相关的事情是,它从目录结构中提取回购名称,例如: 〜/ gocode/src/github.com/me/myproject自动转换为git clone https://github.com/我/ myproject的。 但是,gitolite名称如何转化为路径? –

+0

我提高了你的答案,因为这是有用的信息,但到目前为止这解决了这个问题。 –

2

我为这个用例写了一个工具。看看它是否有帮助。

https://github.com/tuxychandru/gorepos

+0

看起来很有趣。 +1我的答案是更普遍的答案。 – VonC

+0

VonC的答案是添加一个网络服务器(尽管我认为git守护进程也应该起作用)通常更有用。 但是,由于与我的git服务器有关的问题,我实际上会使用Chandru的解决方案。我希望我可以选择两个答案!感谢大家。 –