Wednesday, October 12, 2011

Git and Continuous Delivery


I wonder, how to establish development process with git or other distributed source control system and Continious Delivery pattern.
I've seen a presentation by Linus Torvalds, where he explained how are they use git for Linux development. So it's an hierarchical structure of commiters based on trust with Linus on the top. Linus trusts to some people and can pull code from them. These people have their own teams which they trust and pull changes and so on.
As a result Linus has fork of Linux source code which can be released. I know that Linux was migrated on GiHub. I suspect that only Linus can push changes there (or few people including Linus)
So GitHub remote repository can be treated as a mainline. Continuous Delivery pipelines use it for releases.
So i can see two ways to establish the process of commits.
1st as i described earlier with Linux
2nd - everybody can push to mainline (GitHub) and no hierarchy. I cannot see any benefits of distributed source control system in this case.

What do you think? What is best approach to build delivery process in this case? Or distributed source control systems are not the best choice for continuous delivery, and you'd better use centralized?

No comments: