123456789101112131415161718192021222324252627282930313233 |
- This is the dulwich project.
- It aims to give an interface to git repos that doesn't call out to git
- directly but instead uses pure Python.
- Currently can read blobs, trees and commits from the files. It reads both
- legacy and new headers. It can write out new indexes as well.
- Can also understand a little about the repository format.
- Open up a repo by passing it the path to the .git dir. You can then ask for
- HEAD with repo.head() or a ref with repo.ref(name). Both return the SHA id
- they currently point to. You can then grab this object with
- repo.get_object(sha).
- For the actual objects the ShaFile.from_file(filename) will return the object
- stored in the file whatever it is. To ensure you get the correct type then
- call {Blob,Tree,Commit}.from_file(filename). I will add repo methods to do
- this for you with file lookup soon.
- There is also support for creating blobs. Blob.from_string(string) will create
- a blob object from the string. You can then call blob.sha() to get the sha
- object for this blob, and hexdigest() on that will get its ID. There is
- currently no method that allows you to write it out though.
- Everything is currently done with assertions, where much of it should probably
- be exceptions. This was merely done for expediency. If you hit an assertion,
- it either means you have done something wrong, there is corruption, or
- you are trying an unsupported operation.
- The project is named after the part of London that Mr. and Mrs. Git live in
- in the particular Monty Python sketch. It is based on the Python-Git module
- that James Westby <jw+debian@jameswestby.net> released in 2007.
|