我们有一个SVN的设置,有一些我们不喜欢它的事情,我们喜欢它的一些事情。 我们想要转移到git,但是我们不确定到底是什么设置对我们有用。 我们目前正在使用SVN(w / Authz)+ Apache(w / WebDAV和LDAP)。
上面的第5点是不断给我们填塞的。 有人从活网站提交一个提交,然后钩中断。
我们正在考虑使用gitosis / gitolite来获得访问控制,但是因为他们使用ssh密钥,所以我们不需要密码。 我们也在考虑使用git-http-backend,并使用Apache进行身份validation,但是我们是否会失去访问控制? 如果Apache需要validation,现场网站是否可以自动更新? 我们可以以某种方式将git-http-backend和gitosis / gitolite结合起来吗? 我们可以用git存储http凭证吗?
如果你仍然喜欢使用svn up直播网站,请仔细阅读svn help up注意一些选项以便以智能方式处理证书
Global options: --username ARG : specify a username ARG --password ARG : specify a password ARG --no-auth-cache : do not cache authentication tokens
我们也在考虑使用git-http-backend,并使用Apache进行身份validation,但是我们是否会失去访问控制?
不,您可以使用ldap设置身份validation,这与您使用SVN的方式几乎完全相同。 Gitweb和git-http-backend使用mod_ldap就像SVN的auth目的。
如果Apache需要validation,现场网站是否可以自动更新?
Git默认带有gitweb。 这是非常有用的为您的源代码库的在线浏览器。 你可以在Apache后面使用mod_ldap来configuration它,就像git-http-backend一样。 更新在线浏览器和存储库不需要挂钩。 这一切都由cgi,git-http-backend维护。
我们可以以某种方式将git-http-backend和gitosis / gitolite结合起来吗?
gitolite是你想要的:
https://github.com/sitaramc/gitolite/wiki/
Gitosis基本上被剥夺:
Ubuntu服务器:gitosis用户命名约定
就个人而言,我们只是使用LDAP进行用户授权和身份validation。 如果您使用的是LDAP,您并不需要gitolite来进行用户pipe理。 您可以使用任何一般的LDAP用户pipe理工具。 大多数Linux发行版都附带有用于pipe理openLDAP的各种UI工具。 如果你windows,只需使用活动目录。
默认的方法(git,gitweb,git-http-backend,LDAP)和gitolite都支持以下内容:
但是,如果你想要没有LDAP的细粒度用户pipe理,并符合以下标准,那么gitolite可能是一个更好的解决scheme:
从http://sitaramc.github.com/gitolite/index.html#gl_what
我们可以用git存储http凭证吗?
是的,你可以使用git config存储/分配用户:
git config --global user.name "Foo Bar" git config --global user.email "[email protected]" git config --global user.password "yourpassword" git config --global github.user "yourusername" git config --global github.password "yourpassword"
虽然,如果您使用SSH,请确保您使用的是CA证书,而不是自签名的。 Git有这个奇怪的黑客,sslVerify = false,使其与自签名证书,哪种似乎击败使用证书的目的。
当你将代码从svn迁移到git时,你需要一个好的导入工具。 我找不到任何对大型版本库有效的东西,所以我写了自己的。 随意尝试,如果遇到与git-svn的问题: