title: GIT Utilities
linktitle: git-utils
parent: Home
ctime: 2009-12-10

Repositories: [git-utils](/gitweb/?p=git-utils.git;a=summary).

# GIT

Read about [GIT](http://git-scm.com) here.

# Utilities

TMI is starting to collect a number of small utilities for git.  Each utility
has a man page describing its operation.  A few notables:

* `git-diffall`.  Provides a facility for file-aware visual diff using an
  external diff tool such as kdiff3, meld, or a similar tool.

* `git-empty-branch`.  Create an empty branch in a local git repository.

* `git-local`.  Store local branches in a shared git repository under a private
  namespace.  Upload, download, remove and list operations are provided.  We
  use this tool to backup up local commits not yet suitable for pushing into a
  local shared branch.

* `git-overview`.  A simple script that scans a directory tree for git repos,
  showing the overall state of each.

* `git-publish-branch`.  A shell version of the ruby script created by William
  Morgan.  See his [git utilities page](http://git-wt-commit.rubyforge.org).
  We did not want to have to install ruby just for this one little utility.

* `git-push-public`.  Used by TMI to replicate changes made to open source
  projects hosted on TMI private servers to the TMI public server.

* `server-gc`.  A tool to run git-gc on each bare git repository found within a
  given filesystem directory tree.  Newest versions of git generally make this
  utility redundant.

* `update-mirror`.  Used by TMI to update a local git mirror of an upstream git
  or svn repository.  Derived from the clone.sh script found at
  [girocco](http://repo.or.cz/w/girocco.git).

# Installation

These scripts are not packaged in the [[aptrepo]].  To install the utilities,
copy the scripts to `/usr/local/bin` and ensure they have execute permission.
Then copy the `*.1` files, which are the man pages, to `/usr/local/man/man1`.
