Centralized and Distributed Systems

In centralized systems, the date is stored at common point. Clients send changes over repositories on the web. In order to get information or do some basic operations,, clients have to connect the center. Whereas, the data is stored in your local computer in distributed systems. Consequently, people can do the operations without connecting to the center. These systems do not necessarily rely on a central server to store all the versions of a project’s files. Instead, every developer “clones” a copy of a repository and has the full history of the project on their own hard drive. This copy (clone) has all of the metadata of the original.

DVCS advantages :

The act of cloning an entire repository gives distributed version control tools several advantages over centralized systems:

  • Performing actions other than pushing and pulling changesets is extremely fast because the tool only needs to access the hard drive, not a remote server.
  • Committing new changesets can be done locally without anyone else seeing them. Once you have a group of changesets ready, you can push all of them at once.
  • Everything but pushing and pulling can be done without an internet connection. So you can work on a plane, and you won’t be forced to commit several bugfixes as one big changeset.
  • Since each programmer has a full copy of the project repository, they can share changes with one or two other people at a time if they want to get some feedback before showing the changes to everyone.

 

Distributed Version Control : Git , Mercurial

Centralized Version Control : Svn (Subversion)


Svn vs Git

In SVN systems, versioning is done at the remote server. Commits are recorded from SVN server with the revision number. In order to get the data, people have to get an access to server at that time. Briefly, SVN doesn't include any local commit so that SVN must be stand all time.

 

Git is distributed system, not centralized. People can access the system when there is no internet connection. When they connect the server, changes are sent to the system. It provides great flexibility to the users.


Git vs Stash
 
  • Stash provides user management when we compared with Git. Because, the security is implemented over the keys and it requires configuration. Stash helps us the manage it.
  • Stash provides LDAP connection.
  • Stash gives us reporting feature.
  • Stash includes higher level authorization. Here is the example :