[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Switching to Git?

From: Ludovic Courtès
Subject: Switching to Git?
Date: Mon, 20 Aug 2007 23:45:31 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)


How about switching from CVS to Git [0]?

What this would bring us:

  * Decentralized Development

    As you may know, this would allow every interested user to hack on
    their side, pulling changes from the main repository as they see
    fit, and promoting their changes whenever they want.  This is really

  * Off-Line Operation

    As a corollary, this would allow off-line operation on the local
    copy of the repository.

  * Speed and Bandwidth Improvement

    Git operates on a local repository, which makes operations very
    fast.  This is a significant change when one has got used to waiting
    for "cvs diff" to complete for ages.  ;-)

  * Transactional, Changeset-Oriented

    Commit operations are transactional and changeset-oriented.  Changes
    to a collection of files that are committed at the same time do
    appear as a single "change set", rather than as separate changes as
    with CVS.  This means that GNU-style change logs can be generated
    automatically using tools like `git2cl' [4].

  * Nice Web Interface

    See [1] for example.

These are the most obvious benefits.

Note that Git is now supported on Savannah [2].  It's used by various
GNU projects, and also non-GNU projects (one of which is quite famous

Han-Wen did a full import of the CVS history into Git some time ago [1].
Note that it preserves tags and branches.  This Git repository is kept
in sync with CVS using a cron job that runs on Han-Wen's machine.
However, it is not automatically synchronized in the other direction,
making it inconvenient.

Of course, nothing's black and white and Git has some weaknesses, too.
Most notably, its UI is a bit rough and at least not to everyone's taste
(which can be worked around by using companion tools such as Cogito




reply via email to

[Prev in Thread] Current Thread [Next in Thread]