To lie

to lie is a manager of source code which belongs to many the management systems of versions. It was created by Linus Torvalds, the creator of Linux, and is distributed under GNU LPG version 2. It is thus a Free software.

Technical characteristics

Like BitKeeper, Git does not rest on a centralized waiter. It is one low tool level, which wants to be simple and very powerful, of which the principal one task is to manage the evolution of the contents of a tree structure.

To lie indexes the files according to their checksum calculated with the function SHA-1. When a file is not modified, the sum of control does not change and the file is stored only once. On the other hand, if the file is modified, the two versions are stored on disc.

To lie was not, at the beginning, strictly speaking a Management software of versions. Linus Torvalds explained why, “by many aspects, you can to consider to lie like a Filesystem: it allows an addressing associative, and has the concept of versionnage, but especially, I conceived it by solving the problem from the point of view of a specialist in the systems in files (my trade, they are the cores!), and I did not have absolutely any interest to create a traditional management system of version. ”. It evolved/moved today to integrate all the functionalities of a manager of versions.

To lie is regarded as powerful, so much so that some other software of management of version (Darcs, Arch), which does not use a Database, are shown interested by the storage system of the files To lie for their own operation. They would continue however to propose more advanced functionalities.

Operation

To lie has two structures of data: a base objects and a mask of repertories. There exist four types of objects:

  • the object blob , which represents the contents of a file (the origin of this denomination is probably to seek in the Broad Binary OBjects of the databases).

  • the object tree (" arbre" in English), who is a list of objects of the type blob S and information associated with each blob , such as the name of the file and the permissions. This object describes the tree structure of the sources at a given time.
  • the object made , which gives access to the history of a tree structure of source. It contains a message of log, an object tree and points towards one or more objects made parents.
  • the object tag (" étiquette" or " marqueur" in English), who can contain méta-information associated with another object. In general, this object is used to record the numerical signature of a object made correspondent with a particular version of the data put in management of version in Git.

The base of the objects can contain any type of objects. A layer intermediary, using indices (checksums), establishes one bond between the objects of the base and the tree structure of the files.

Each object is identified by a sum of control SHA-1 of its contents. To lie calculates the sum of control and uses this value to determine the file name of the object. The object is placed in a repertory whose name corresponds to the two first letters of the sum of control. The remainder of the sum of control then constitutes the name of the file for this object.

To lie records each revision in a file as an object blob single. The relations between the objects blob S are given while examining the objects made . In general, the objects blob S are stored in their integrality by using the compression of the Zlib. This principle can quickly to consume a great quantity of place disc; so them objects can be combined in files, which use compression differential (i.e. the blob S are recorded in the form differences compared to the others blob S).

Some orders

To lie has in particular the following orders (for a complete listing, consult the manual page Git):

  • git-init-db creates a new deposit.
  • git-update-cache --add adds new objects blob S in the base of the objects for each file modified since the last made . The preceding objects remain unchanged.
  • git-write-tree creates a new object tree with the mask of the repertory and the additions in the base of the objects. It turns over chopped object tree .
  • git-commit-tree integrates chopped of an object tree and chopped objects made S parents to create a new object made .

Interfaces

Petr Baudis maintains a whole of scripts called cogito (in the past to lie-pasky ), a system of management of version using Git like sleeps subjacent.

Catalin Marinas maintains another system with the top To lie: Stacked TO LIE (or StGit).

In the month of April 2005, there existed two interfaces Web for To lie:

  • gitweb: implemented in Perl and maintained by Kay Sievers.
  • wit (Wit): implemented in Python and maintained by Christian Meder.

Development

To lie especially was developed and optimized for the core Linux. Linus Torvalds began its writing in April 2005, to replace the program owner BitKeeper. Indeed, Larry McVoy revoked the possibility of using its software free, after Andrew Tridgell tried a Retro-engineering on the protocols used by BitKeeper. The reasons of this revocation remain however discussed.

The first version was published on April 7th, 2005. Since, the development of this tool continued. It gradually was improved, being seen equipped with graphical interfaces, Web interfaces or advanced scripts.

Kernel Summit of July 2005 was the occasion for Linus Torvalds to announce that the following versions of the core (starting from version 2.6.12) would be developed using Git.

At the end of July 2005, Linus Torvalds decided to entrust maintenance and the evolutions To lie in Junio Hamano, explaining why he “had always said that he did not want really to maintain it on the long run”.

The development is very active. The publication of the first stable version (1.0) dated December 21st, 2005, is less than one year after the starting of the project.

Origin of the name

Magazine PC World teaches us that when it was asked him why it had called its software " git" , which means “character rotted” in English slang, Linus Torvalds answered “I am only one egocentric person, therefore I call all my projects according to my own person. Initially Linux, then to lie. ”

See too

  • BitKeeper, software owner whose modifications of license are at the origin of the software to lie .
  • CVS
  • Subversion
  • Monotonous GNU Arch

External bonds

  • the official site to lie, maintained by Petr Baudis

  • the repository to lie of the core Linux
  • Kernel Hackers' Guides to lie
  • tutoriel to lie
  • The guts off to lie, details on operation to lie.

Random links:Ecce Homo | Emperador Ninkō | Jules Joseph Ray | Crocodile clip | Arvika Tennis shoe | David Proctor | Jean_Charles_Léonard_de_Sismondi