Actions

Difference between revisions of "Dvcs"

From Joomla! Documentation

(New page: =Why= ==Pros and Cons== ===Pros=== ===Cons=== =DVCS comparison= ==Git== ===Pros=== ===Cons=== ==Mercurial== ===Pros=== ===Cons=== ==Bazaar== ===Pros=== ===Cons=== =Action Plan=)
 
(Why)
Line 1: Line 1:
 
=Why=
 
=Why=
==Pros and Cons==
+
Using distributed version control means that everyone has a repository, and everybody can be a client. Unlike with centralized version control systems one has the freedom and flexibility of having one's own local repository (without having to connect to a server), using it (committing, without having to connect to a server), and synchronizing it with other repositories later (regardless of the number of branches).
===Pros===
+
 
===Cons===
+
The distributed nature of this systems allow to handle conflicts more intelligently and adapting to more complex workflows without hassle, and with free hosting services for this kind of repositories (such as bitbucket.org, github.com and launchpad.net), everyone can exchange code in any direction.
 +
 
 +
The typical setup of a centralized system such as CVS and Subversion involve a server with a repository and users as clients that push the changes remotely. Everyone must be in tone with the same repository.
 +
 
 +
(diagram)
 +
 
 +
In a DVCS setup there is often also a server that has a central repository where everyone pushes changes, however, each one of the clients have their own repositories locally (to which they commit their changes), so they only need to connect to the server with the central repository when sharing the changes, in other words, everybody has a repository they work with and then synchronize with a central repository.
 +
 
 +
(diagram)
 +
 
 +
 
 +
==Pros==
 +
* One can use version control locally (i.e. actual committing) without polluting a central repository for everyone else.
 +
* One can use version control offline.
 +
* Merging branches is trivial (under 5 minutes), since the DVCS stores richer metadata and handles more conflicts.
 +
* Cherry-picking (i.e. pulling) changes from anyone, no need for the contributors to build patches and sending them (although one can still do it)
 +
* IDE and graphical integrations for this tools are mature and widely available
 +
* Free quality hosting services (bitbucket.org, github.com, launchpad.net)
 +
==Cons==
 +
* Learning curve can be bumpy at start
 +
* The rest of your team must be willing to adopt the tool
 +
 
 
=DVCS comparison=
 
=DVCS comparison=
 
==Git==
 
==Git==

Revision as of 10:03, 28 June 2010

Contents

Why

Using distributed version control means that everyone has a repository, and everybody can be a client. Unlike with centralized version control systems one has the freedom and flexibility of having one's own local repository (without having to connect to a server), using it (committing, without having to connect to a server), and synchronizing it with other repositories later (regardless of the number of branches).

The distributed nature of this systems allow to handle conflicts more intelligently and adapting to more complex workflows without hassle, and with free hosting services for this kind of repositories (such as bitbucket.org, github.com and launchpad.net), everyone can exchange code in any direction.

The typical setup of a centralized system such as CVS and Subversion involve a server with a repository and users as clients that push the changes remotely. Everyone must be in tone with the same repository.

(diagram)

In a DVCS setup there is often also a server that has a central repository where everyone pushes changes, however, each one of the clients have their own repositories locally (to which they commit their changes), so they only need to connect to the server with the central repository when sharing the changes, in other words, everybody has a repository they work with and then synchronize with a central repository.

(diagram)


Pros

  • One can use version control locally (i.e. actual committing) without polluting a central repository for everyone else.
  • One can use version control offline.
  • Merging branches is trivial (under 5 minutes), since the DVCS stores richer metadata and handles more conflicts.
  • Cherry-picking (i.e. pulling) changes from anyone, no need for the contributors to build patches and sending them (although one can still do it)
  • IDE and graphical integrations for this tools are mature and widely available
  • Free quality hosting services (bitbucket.org, github.com, launchpad.net)

Cons

  • Learning curve can be bumpy at start
  • The rest of your team must be willing to adopt the tool

DVCS comparison

Git

Pros

Cons

Mercurial

Pros

Cons

Bazaar

Pros

Cons

Action Plan