Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I am answering this question based on my experience as developer manager in a large telco, where we adopted Git in 2010</p> <p>You have quite different set of problems here:</p> <ul> <li>workflows </li> <li>client tools </li> <li>server access control and integration</li> </ul> <p><strong>Workflows</strong></p> <p>We successfully adopted a central repository mode: what we have in our enterprise project (a large portal for a 5 million user base) is a de-facto central repository that produces the official builds then are taken trough the delivery process (which, in our case, is composed of three level of testing and two deployments). Every developer manages his own repo, and we work on a branch-per-feature basis.</p> <p><strong>Client tools</strong></p> <p>There are now several options available, this is now a very crowded area. Many developers are successfully using <a href="http://www.jetbrains.com/idea/" rel="nofollow">IntelliJ Idea</a> and <a href="http://www.eclipse.org/egit/" rel="nofollow">Eclipse with the Git plugin</a>, without any other stuff. Also most of the Linux developers are using CLI git client, without any problem. Some Mac developers are successfully using <a href="http://www.git-tower.com/" rel="nofollow">Tower Git</a>. Please note that <strong>none of these clients</strong> can prevent the user to "mess up" with the central repository: a server side control mechamism is needed</p> <p><strong>Server access control and integration</strong></p> <p>If you want to avoid developers "messing up" you Git repository, you reall need to choose a solution that:</p> <ul> <li>exposes a decent web admin interface to do every operation</li> <li>allows you to enforce user identities (using a "bare" Git repository is extremely easy to commit in behalf of someone else)</li> <li>provides you fine grained security (so that for example you can prevent FORCE-PUSH and set some branches to read only for some developers / groups)</li> <li>integrate with your corporate authentication system (i.e. LDAP, Windows ActiveDirectory)</li> <li>provides you full audit (SOX compliance is sometimes <em>very</em> important for large corporates)</li> </ul> <p>There are not so many ready-to-use server side solutions that can help this, I suggest you check out one of these:</p> <ul> <li><a href="http://gitorious.org/" rel="nofollow">Gitorious</a>: it can provide basic access level security, but it lacks fine grained permissions control out of the box, so you will probably have to do some coding to handle scenarios such as branch level permissions. It also lacks integration with existing corporate authentication mechanisms </li> <li><a href="http://enterprise.github.com/" rel="nofollow">GitHub</a> Enterprise: recently published by GitHub, it features GitHub in your corporate. It lacks SOX complianance and fine grained security </li> <li><a href="http://code.google.com/p/gerrit/" rel="nofollow">Gerrit</a>: it can provide fine graind access level security and integration with corporate authentication systems but it lacks SOX compliance and SSO. Also some operations can only be done via SSH via CLI </li> <li><a href="http://gitenterprise.com" rel="nofollow">GitEnterprise</a>: it provides branch level permissions, SSO, SOX compliance, full web based administration. It was recently also integrated with Gerrit, so that it also provides you a full Gerrit instance</li> </ul> <p>Hope this helps!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload