Tuesday, November 25, 2008

BAZAAR: Distributed Version Control System 1

This article is about one of the most popular DVCS bazaar. Feel free to put your valuable comment/information.

What is DVCS

Distributed revision control (or Distributed Version Control (Systems) (DVCS), or Decentralized Version Control) is a fairly recent innovation in software revision control. It provides some significant advantages over the more traditional centralized approach to revision control.

Wikipedia gives the following definition:
Distributed revision control takes a peer-to-peer approach, as opposed to the client-server approach of centralized systems. Rather than a single, central repository on which clients synchronize, each peer's working copy of the codebase is a bona-fide repository. Synchronization is conducted by exchanging patches (change-sets) from peer to peer.

So Common operations such as commits, viewing history, and reverting changes are fast in DVCS, because there is no need to communicate with a central server. Each working copy is effectively a remote backup of the codebase and change history, providing natural security against data loss.

There is always a single copy that is sanctioned as the main development branch in teams using distributed VCS tools. Over and above the potential for disconnected operation, the primary differences between distributed and central VCS are these:

1. Developers can collaborate directly without needing central authority or incurring central administration overhead
2. The acts of snapshotting changes and publishing changes can be decoupled.


Four vary important terms which you need to understand before going ahead.

1. Revision:A revision is a snapshot of the state of a tree of files and directories, including their content and shape. A revision also has some metadata associated with it, including:

* Who committed it
* When it was committed
* A commit message
* Parent revisions from which it was derived


2. Repository: A software repository is a storage location from which software packages may be retrieved and installed on a computer.

3. Branch: In revision control and software configuration management, is the duplication of an object under revision control (such as a source code file, or a directory tree) so that modifications can happen in parallel along both branches.Branches are also known as trees, streams or codelines. The originating branch is sometimes called the parent branch, the upstream branch.

4.Working Tree:A working tree is a version-controlled directory holding files the user can edit. A working tree is associated with a branch.Many commands use the working tree as their context, e.g. commit makes a new revision using the current content of files in the working tree.

What is Bazaar

Bazaar (formerly Bazaar-NG, commandline tool bzr) is a distributed revision control system sponsored by Canonical Ltd., designed to make it easier for anyone to contribute to free and open source software projects. Bazaar is written in the Python programming language, with packages for major Linux distributions, Mac OS X and MS Windows. Bazaar is free software and part of the GNU project.

In contrast to purely distributed version control systems which don't use a central server, Bazaar supports working with or without a central server. It is possible to use both methods at the same time with the same project. The website Launchpad provides a free hosting service for projects managed with Bazaar.

How to install

Bazaar is available in various platforms. Here I will explain how to install it on Fedora. More Download/Support information is available on this link

http://bazaar-vcs.org/Download

For fedora a yum repository is available. The following command will be enough for installing Bazaar on Fedora –

su -c 'yum install bzr'

to be continued.............

No comments: