In a distributed version control system, a local copy of the complete repository is present on every team member’s computer, giving them the power to commit, branch, and merge in the system locally. The server only stores the differences between each commit instead of storing every file.
Distributed source code management systems, such as Git and Mercurial, clone the repository and its entire history as a local copy on individual machines.
This system helps software development teams create robust workflows and hierarchies, with each developer pushing code changes to their repository and setting a code review process to ensure only quality code merges into the main branch.
This system can be complex to understand initially, mainly if a team member uses a centralized source code system. We can not rely on a server to resolve conflicts when merging and have to resolve them locally, which is sometimes confusing.
Advantages of Distributed Version Control
Work offline
Not relying on the internet/intranet to be connected to the server, so most development, except pushing and pulling, can be done at any time.
Easy branching
Distributed version control also allows software development teams to use different branching strategies, which is impossible in a centralized version control system.
Quick feedback
Having an entire repository locally means they can quickly experiment and request a code review.
Fewer conflicts
Merge conflicts are less likely because teams focus on their piece of code. The development team benefits from fast feedback loops and can share changes with team members before merging the changeset.
Commenti