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?
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.
Yes, but you have many options. The best diagram I've seen that explains some of them is at http://whygitisbetterthanx.com/#any-workflow.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With