git

Submitted by doug on Fri, 2007-05-18 18:47.Configuration Mgmt | Software Development

popular version control system designed to handle very large projects with speed and efficiency

git.or.cz/

Thu, 2005-08-11 18:00

source code management tracking

Active

Git is distributed version control system focused on speed, effectivity and real-world usability on large projects. Its highlights include:

  • Strong support for non-linear development. Git supports rapid and convenient branching and merging, and includes powerful tools for visualizing and navigating a non-linear development history.
  • Distributed development. Like most other modern version control systems, Git gives each developer a local copy of the entire development history, and changes are copied from one such repository to another. These changes are imported as additional development branches, and can be merged in the same way as a locally developed branch. Repositories can be easily accessed via the efficient Git protocol (optionally wrapped in ssh) or simply using HTTP - you can publish your repository anywhere without any special webserver configuration required.
  • Efficient handling of large projects. Git is very fast and scales well even when working with large projects and long histories. It is commonly an order of magnitude faster than most other revision control systems, and several orders of magnitude faster on some operations. It also uses an extremely efficient packed format for long-term revision storage that currently tops any other open source version control system.
  • Cryptographic authentication of history. The Git history is stored in such a way that the name of a particular revision (a "commit" in Git terms) depends upon the complete development history leading up to that commit. Once it is published, it is not possible to change the old versions without it being noticed. Also, tags can be cryptographically signed.
  • Toolkit design. Following the Unix tradition, Git is a collection of many small tools written in C, and a number of scripts that provide convenient wrappers. It is easy to chain the components together to do other clever things.

Besides providing a version control system, the Git project provides a generic low-level toolkit for tree history storage and directory content management. Traditionally, the toolkit is called the plumbing. Several other projects (so-called porcelains) offer compatible version control interfaces - see the related tools list.

Some other projects have taken the concepts from the Git project and are either porting an existing toolset to use the Git tools, or reimplementing the concepts internally, to benefit from the performance improvements. This includes e.g. Darcs-git.

Trackback URL for this post:

http://lopsa.org/trackback/1432