TempGit

Copyright and Licensing

Copyright Notice

Copyright 2011 Todd A. Jacobs
All rights reserved.

Software License

The software is licensed under the GPLv3. The LICENSE is also included in the source tree.

README License

Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States License

Purpose

Have you ever wanted to exercise some Git functionality in your unit or functional tests? The TempGit gem is designed to make life easier–and your filesystem cleaner–when writing Git-related tests.

Key Features

TempGit has some killer features to ease Git-related testing.

  • Instantiate as many Git repositories as you need for testing, each with its own unique directory context.

  • Doesn't rely on potentially-shared environment variables for GIT_DIR or GIT_WORK_TREE. Each instance stores its own directory values.

  • Execute arbitrary Git commands in an instantiated context. If Git can run it, TempGit can run it, too.

  • Won't clutter or clobber your current working directory.

  • Cleans up after itself.

Installation and Usage

This gem has been tested against Ruby 1.9.2. It definitly doesn't work with Ruby 1.8.7, but patches are welcome.

Installing the Gem

gem install tempgit

Using the Library

require 'tempgit'

Example Usage

repo = TempGit::GitDir.new
puts repo.git('log')

repo.add_new_file
puts repo.git('status')

repo.commit_with_sequence_number
puts repo.git('log')

Further Reading

  1. RubyGems

  2. Git

  3. RSpec