I'm trying to understand if security is a real concern, or if distribution actually does a better job with security. See, the access to the main source repository could be layered and inherently managed by a network of trust, and could still have centralized user management integrating users from an LDAP/Active Directory, while the centralized version control system just relies on the later. With distribution, access could even be given to less users per repository in different countries and maintained easier.I can see why it is easy to think that having tight & centralized access management to a code repository translates to security, however, that doesn't mean that code cannot be accessed or redistributed other ways. But, is there a real argument/use case/scenario for security where the centralized model is just better than the distributed one?.Some context: I'm trying to make the case (with a whitepaper) to my company to switch to a DVCS (I already have other problems identified that are successfully addressed by most DVCSs) and security is one of the arguments I'm expecting to have to justify. My company is open minded though; they currently use perforce and are distributed geographically.
Is security a real argument for centralized version control?
security;dvcs;version control
On the contrary, a DCVS can be far more secure, and here is why:Whereas a given developer having source code in any form on their workstation can do anything they want to do (steal it, share it, post it to facebook), you have to address that issue outside of version control.  So it's the same playing field once a working copy is checked out.When it comes to checking out a working copy, I would imagine the security is comparable.  We use SSH for all access to git, so it is about as secure as it gits (pun intended). Here is where they are different:If you use the proper workflow, then nobody but your most trusted engineers have push access to your primary repository.  Regular developers work...work...work, and then submit a pull request to the trusted engineer, who will pull, review, and push to the main repository.Think how open source projects, like Linux, manage their workflow in a no-trust environment.  If the same concepts are applied to your DCVS workflow, you actually have far better security with regards to bugs, security holes, or malicious code being added to your product.