2

The scenario we have is that our organization is located in a few geographical locations.

I would like to setup a git central server so each of the distributed teams can push their changes into it and share with the rest of the teams.

I am wondering what are the best options of doing such a thing.

The current 2 options i can think of are:

  1. One central server for all global teams.
  2. One central server per geographic site. Set up some sort of automatic PUSH between servers to keep in sync.
  3. Hosted solution.

While #3 is currently not an option for our organization AFAIK, are there any other options of doing so? What is the best option?

I would assume there are already some guidelines and best practices to solve this particular issue.

Cœur
  • 37,241
  • 25
  • 195
  • 267
lysergic-acid
  • 19,570
  • 21
  • 109
  • 218

2 Answers2

3

Do you really need multiple "central servers"? Why not have all the teams work with a single repository. Much of gits work is done offline and even the parts that have to talk to the network are quite optimised. I don't think you'll have trouble with having just one central repository.

Noufal Ibrahim
  • 71,383
  • 13
  • 135
  • 169
  • Not ruling this out (that's why it is #1 on my list). I am concerned with performance issues that may arise, and that is why i am seeking words of wisdom from people who have actually done this before. – lysergic-acid May 13 '12 at 13:00
  • 1
    Well, it depends on the way your code is organised and the size of the repository. However, I would start by having a single central repository on your intranet and letting everyone use it in a distributed way. If there are performance problems, we can revisit the problem and try multiple "servers". – Noufal Ibrahim May 13 '12 at 18:20
1

My first response would be to simply setup a github 'organization' and manage your organizations private repositories through it. There are a lot of benefits -- including backup of the data being taken care of, having people who know git extremely well managing the infrastructure, etc.

But if the company can't do that for some reason, I'd recommend having a single, global repository if at all possible.

Each person can then simply clone the central repository and pull/push changes to it. Adding additional repositories adds complexities and risks like:

  • Having to backup multiple servers to make sure the repository is safe
  • having to have processes to make sure the different repositories all push / pull changes to each other.
  • Having some teams not synch their regional repository often enough.
  • Tracking bugs introduced back through commits in other repositories.

There's no real benefit to having regional servers either, as far as I can tell.

Kevin Bedell
  • 13,254
  • 10
  • 78
  • 114
  • Though i haven't raised this yet, i am sure our organization is not open minded to having the code hosted on some external service. Another disadvantage is the costs involved (free/paid). – lysergic-acid May 13 '12 at 13:02