Create temporary git repos in python.
Impermagit makes it easier to test python programs that use / integrate with git. For example:
from impermagit import fleeting_repo with fleeting_repo() as repo: # there is not a git repo created in a temporary dir # somewhere, allowing you to do things like: # add some files with some contents and commit them repo.commit([('test.txt', 'test contents\n'), ('subdir/test2.txt', 'other contents\n')]) # update contents repo.commit([('test.txt', 'new test contents\n')]) # git rm files by passing None as contents repo.commit([('subdir/test.txt', None)]) # run arbitrary git cmds in the repo when you don't care # about the output (will raise a GitExeException if it # fails) repo.do_git(["rm", "some-other-file.txt"]) # run arbitrary git cmds in the repo and get back # stdout / stderr. with repo.yield_git(["log"]) as (out, err): print out.read() print err.read() # and here, the repo is gone and the temporary dir deleted.
You can also create a Repo object directly, if you’d prefer to control the lifecycle more closely:
from imperagit import Repo repo = Repo('/some/dir/you/manage')
By default, Imperagit uses “/usr/bin/env git” as the git executable, but this can be overridden with the git_exe arg to both fleeting_repo and Repo.
You can see more detailed docs with the interactive help:
>>> import impermagit >>> help(impermagit)
Impermagit requires Python 2.6+, and has not been tested with Python 3.