英文:
Using go language with gitolite
问题
Does know how to use Google's go languages clever get command with Gitolite?
It works great with Google Code and Github as follows:
> go get code.google.com/p/go.example/hello
or
> go get github.com/alphazero/Go-Redis
But my gitolite access look more like:
> git clone git@mygitolite:myproject
Any suggestions?
英文:
Does know how to use Google's go languages clever get command with Gitolite?
It works great with Google Code and Github as follows:
> go get code.google.com/p/go.example/hello
or
> go get github.com/alphazero/Go-Redis
But my gitolite access look more like:
> git clone git@mygitolite:myproject
Any suggestions?
答案1
得分: 3
这与gitolite无关。Gitolite只是一个**授权层**,它会根据你的用户名接受或拒绝你的git clone/push/pull
命令。
如果你可以将一个git仓库声明为go的源代码,你就可以使用它。Gitolite只会检查你是谁,但不会影响该仓库在go中的使用方式。
> 关于go的问题是,它从目录结构中提取仓库名称,所以例如:
~/gocode/src/github.com/me/myproject
> 会自动转换为
git clone github.com/me/myproject.
> 但是gitolite的名称如何转换为路径呢?
我认为你不需要转换任何东西:如果go能够连接到你的git仓库(GitHub或任何其他托管仓库服务器),gitolite将拦截命令并验证(或拒绝)它。你可以将gitolite插入到ssh上,或者(正如go导入所做的git请求的情况)使用https。
但主要的问题是:
-
gitolite在服务器端
-
如果你想要轻松地通过go导入访问你的仓库,你应该与Apache服务器一起使用它(例如,使用我的配置),而不是ssh。
英文:
It has nothing to do with gitolite.
Gitolite is just an authorization layer, which will accept or deny your git clone/push/pull
command, depending on your username.
If you can declare a git repo as a source for go, you can use it.
Gitolite will just check who you are, but won't otherwise affect how that repo is used with go.
The OP Peter Krnjevic refines the issue:
> The thing with go, is that it pulls the repo name from the directory structure, so for instance:
~/gocode/src/github.com/me/myproject
> is automagically transformed into
git clone github.com/me/myproject.
> But how can gitolite names be transformed into a path?
I don't think you need to transform anything: if go is able to contact your git repo (GitHub or any other hosting repo server), gitolite will intercept the command and validate it (or deny it).
You can plug gitolite on top of ssh or (as it is the case with git request done by go import) with https.
But the main point is:
-
gitolite is on the server side
-
you should use it with an Apache sever (like, for instance, with my config), and not ssh, if you want to easily have your repos accessed with go imports.
答案2
得分: 2
我为这个用例编写了一个工具。看看它是否有帮助。
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论