Git

Topic:

Interface layers

  • bup (LGPL) from Avery Pennarun is an incremental backup tool based on git. Avery explains the options in his blog.
  • EtcKeeper (GPL) is a collection of tools to let /etc be stored in a git repository. It hooks into apt to automatically commit changes made to /etc during package upgrades.
  • IsiSetup is an utility for managing configuration files using git as backend.
  • etcgit from Jörg Sommer is an alternative to etckeeper that records the original package configuration in one branch and your changes in another one.
  • FlashBake is a tool which watches files and automatically checks them in to a git repository.
  • Gitosis by Tommi 'Tv' Virtanen is a Python tool to manage git repositories, provide access to them over SSH, with tight access control and not needing shell accounts. It is discussed in Hosting Git repositories, The Easy (and Secure) Way.
    Tutorials: Arch Linux: Gitosis, DreamHost: Gitosis updated], Pro Git: Gitosis chapter.
  • Gitolite (GPL) by Sitaram Chamarty is an enhancement of Gitosis. It add per-branch permissions. It is written entirely in perl, and doesn't require root access.
    Tutorials: Pro Git: Gitolite chapter, Gitolite Tutorial by Sena Wario, Setup your own git server using gitolite on ubuntu by Vitali Carbivnicii.
  • git-annex by Joey Hess manage files with git, without checking their contents into git.
    • sharebox is a distributed FUSE filesystem for sharing files across several machines based on git-annex.
  • Quilt scripts allow to manage a series of patches by keeping track of the changes each patch makes. It is described in this Introduction to Quilt by Andreas Grünbacher. Stacked Git provides a Quilt-like patch management functionality in the Git environment.
  • vcs is a python library to abstract common vcs operations. It can be used with Git, Mercurial.
  • anyvc vcs is a python abstraction layer over various version control systems; presently Git and Mercurial, Bazaar, Subversion. It is similar to vcs, but does not yet work with history and branches. anyvc repository
  • zit is a bash script used to track single files within a directory like RCS does but using git.

Graphic Interfaces

  • gitk and git-gui are Tcl/Tk GUI for git distributed with git.
  • GitWeb distributed with Git, is a web interface written in Perl.
  • GitView is a GTK repository browser for git written in Python.
  • tig is a git repository browser written using ncurses. tig user manual
  • Agit (GPL) is a 'read-only' android client for git. It can clone a repository and explore history, presently you cannot commit or push.

Tools

Acting on a group of repositories

  • mr from Joey Hess can checkout, update, or perform other actions on a set of repositories. mr is a Debian Package.
  • fgit (Folder Git) by Victor Engmark - is a small shell script that run a Git command in several repositories.
  • metagit is a tool for defining sets of git (or whatever scm) repositories and perform actions like clone/pull/push on them.

File systems synchronization

  • SparkleShare is a collaboration and sharing tool that uses a git repository backend. It is written in mono and uses libnotify (with python and dbus services) to monitor files so it has quite heavy dependencies. Source code, SparkleShare Wiki
  • DVCS-Autosync is a lighter alternative to SparkleShare. It watch files and folders in specified paths and sync them in a git or mercurial repository. It needs pynotify (python), xmppy and a provided patched JabberBot.
  • git-sync by Ian Bicking is a git deployement script.

Misc

  • GitStats (GPL) generates statistics for git, Pepper (GPL) generates statistics for git, mercurial and Subversion.