Running your own internal git server can have several advantages. Mainly, you are not sharing your code (IP) with external parties. There are many frontends you can strap onto a git server too, like Gitlab, Gitweb, Gerrit, and cgit [1, 2, 3, 4]. We use git/gitolite/gitweb heavily with our internal puppet infrastruture. You can have pre/post commit hooks for things like, syntax checking, email notification, and code deployments.<p>Here is the workflow:<p><pre><code> +--------+ +---------+
| gitweb | |dashboard|
staff +--------+ +---------+ nodes
+-+ | | +-+
+-+-\ | | > +-+
\ +--+-----+ +------+-/
| |git | |puppet|
+-+ -->| |gito-| +-> |master| -> +-+
+-+ | | lite| | | +-+
/ +--+-----+ +------+-
/ | | \
+-+- | v > +-+
+-+ | email hook to +-+
| staff if production branch
v
syntax hook
</code></pre>
I created a screencast about running an internal git server with gitolite @ <a href="http://sysadmincasts.com/episodes/11-internal-git-server-with-gitolite" rel="nofollow">http://sysadmincasts.com/episodes/11-internal-git-server-wit...</a><p>[1] <a href="http://gitlab.org/" rel="nofollow">http://gitlab.org/</a><p>[2] <a href="https://git.wiki.kernel.org/index.php/Gitweb" rel="nofollow">https://git.wiki.kernel.org/index.php/Gitweb</a><p>[3] <a href="https://code.google.com/p/gerrit/" rel="nofollow">https://code.google.com/p/gerrit/</a><p>[4] <a href="http://git.zx2c4.com/cgit/" rel="nofollow">http://git.zx2c4.com/cgit/</a>