Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to setup distributed version control in a company

From my experience with distributed version control systems (DVCS) like git and mercurial in open source projects, most setup models use a centralized setup for their project (think GitHub).

When introducing distributed VCS into a company, do you have a centralized setup model?

like image 624
KingOfCoders Avatar asked Mar 19 '09 09:03

KingOfCoders


2 Answers

It's a good idea to have some sort of central repository, because it'll allow for you to share code, but also have a branch somewhere that you can directly generate your builds/export your snapshots from. That server will probably have more than one branch, one of which is thought of as a 'trunk' branch. Any previous releases will have their own branch, and depending on the hierarchy of your team (ie if you are divided into groups with each group working on one aspect of the application) then there may be team or feature based branches, though if you don't work that way that's not necessary.

Of course, because it is distributed each developer will also have their own local repository, to make things nice and fast. Or they can each have multiple repositories, even. For instance a developer who likes to work while commuting may have a repository on his workstation, and another one on his laptop, with branches on his laptop that are 'checked out' from the ones on his workstation. It's up to him. I guess that the 'distributed' part makes this kind of thing a lot easier, because you can commit and even branch while you are away from the network.

If you're transitioning from a non-distributed VCS, then you can just slip straight into the same model as before, because a DVCS is flexible enough to work in the same way. Otherwise, you can just start with a single central repository with a few branches, and it is always trivially easy to create more repositories and branches later.

One last thing is that you still need backups. The fact that various developers each have copies of the same thing adds redundancy, but it is not instead of backups.

The DVCS I use regularly is Bazaar. I have also tried Mercurial.

like image 180
thomasrutter Avatar answered Nov 01 '22 14:11

thomasrutter


Yes, but you have many options. The best diagram I've seen that explains some of them is at http://whygitisbetterthanx.com/#any-workflow.

like image 26
Jim Puls Avatar answered Nov 01 '22 15:11

Jim Puls