在gitolite中使用go语言

在gitolite中使用go语言,git,github,go,gitolite,Git,Github,Go,Gitolite,你知道如何在Gitolite中使用Google的go语言聪明的get命令吗? 它与Google代码和Github配合使用效果很好,如下所示: 获取code.google.com/p/go.example/hello 或 获取github.com/alphazero/go-Redis 但我的gitolite访问看起来更像: git克隆git@mygitolite:myproject 有什么建议吗?这与gitolite无关。 Gitolite只是一个,它将根据您的用户名接受或拒绝您的git clon

你知道如何在Gitolite中使用Google的go语言聪明的get命令吗? 它与Google代码和Github配合使用效果很好,如下所示:

获取code.google.com/p/go.example/hello

获取github.com/alphazero/go-Redis

但我的gitolite访问看起来更像:

git克隆git@mygitolite:myproject


有什么建议吗?

这与gitolite无关。
Gitolite只是一个,它将根据您的用户名接受或拒绝您的
git clone/push/pull
命令

如果您可以将git回购声明为go的来源,则可以使用它。
Gitolite只会检查你是谁,但不会影响回购协议如何与go一起使用


委员会:


go的问题是它从目录结构中提取回购协议名称,例如:

自动转换为

但是如何将gitolite名称转换为路径?

我认为您不需要转换任何内容:如果go能够联系您的git repo(GitHub或任何其他托管repo服务器),gitolite将拦截该命令并验证(或拒绝)。
您可以在ssh上插入gitolite,也可以使用https(就像go导入完成git请求一样)

但要点是:

  • gitolite位于服务器端
  • 如果希望通过go导入轻松访问repo,那么应该将它与Apache服务器(比如)一起使用,而不是ssh

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


您的gitolite服务器是否也通过http提供服务?我以前没有使用过go,但似乎
go-get
使用的是http,而不是ssh。假设您可以
git克隆http://mygitolite/myproject
,您应该能够
获取mygitolite/myproject
。我不确定它是如何连接的。如果我显式地放置https://或ssh://则会失败。它似乎需要git克隆git@myserver:我的项目。你知道我在哪里可以找到更多信息吗?@cjc343:你可能间接回答了我的问题:gitolite描述了一个类似于我的场景,gitolite似乎在没有git或http(s)服务器的情况下运行。下一步是安装git守护进程。您的注释重新授权很有意义:gitolite似乎验证了我的用户名,我怀疑我有一个密钥,尽管我不记得很清楚。go的问题是,它从目录结构中提取了repo名称,例如:~/gocode/src/github.com/me/myproject自动转换为git克隆。但是如何将gitolite名称转换为路径?我提供了您的答案,因为这是有用的信息,但到目前为止,这解决了问题。@PeterKrnjevic我添加了一个详细说明授权层部分的链接,并在我编辑的答案中解决了您的评论。看起来很有趣+1我的答案更一般。VonC关于添加Web服务器的答案(尽管我认为git守护进程也应该可以工作)更普遍地有用。然而,由于git服务器的问题,我将实际使用Chandru的解决方案。我希望我能选择两个答案!谢谢大家。
~/gocode/src/github.com/me/myproject 
git clone github.com/me/myproject.