Re: Git push over git protocol for corporate environment
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:47:28
Eugene Sajine [off-list ref] writes:
My problem is that I need the simplest, easiest and fastest solution from setup and maintenance point of view in a situation when we have a huge CVS repo with hundreds of modules (projects) in it. My current understanding is that we are going to pull out project by project from CVS and create corresponding git repos. So, this brings us to hundreds of git repos and over 200 hundred committers. In this circumstances we don’t want to manage each repo separately as well as we don’t want to manage each person write access rights to each repo. As I understand the best solution here is git protocol (one port only on dedicated server and no security as we are in trusted network) with read and write access configured for all repos on a dedicated server. What do you think I should do? How to enable push over git protocol?
No, I don't think it is a good solution, as git protocol is by design anonymous and unauthenticated. To enable push via git protocol, you have to enable 'receive-pack' service for git-daemon (the --enable=<service> option).
I would appreciate any recommendation about such set up and any links to corresponding docs.
You would probably want to use some tool to manage git repositories, like * Gitosis (in Python, requires setuptools), * Gitolite (in Perl), * SCuMD (in Java), or even * ssh_acl I think Gitosis is most commonly used tool, see links in http://git.or.cz/gitwiki/InterfacesFrontendsAndTools and http://git.or.cz/gitwiki/BlogPosts pages on git wiki. There are also full-fledged git hosting solutions, usually with web interface to git repositories administration: * GitHub:FI (proprietary, non-free) * Gitorious (Ruby on Rails) * InDefero (PHP, clone of Google Code) * Girocco (Perl + bash, used by http://repo.or.cz) There are also tools such as repo and Gerrit from Android project (Gerrit is a review board). Also, depending on workflow used, you might not need for anyone beside project maintainer to have push access to public repository; maintainer would process pull requests from co-developers, from their per-developer forks. -- Jakub Narebski Poland ShadeHawk on #git