parrot-libgit2 report: References, Trees, Remotes

This was a fairly productive week, with many new features.

Trees: You can now work with trees and its entries. Git is basically a content-addressable filesystem, where all content is stored in trees and blobs. Each tree contains tree-entries, which are pointers to blobs or subtrees. You can now lookup a tree with a SHA1 hash, get all its entries by name or index and get the corresponding objects for further manipulation.

References: You should now be able to resolve references to get the corresponding object in case of direct references or the refname in case of symbolic references.

Remotes and tags: You are now able to create remotes and get or set all its properties. Network operations not yet supported. You are also able to create and delete lightweight tags.

You can also clone repositories now, not just work with local repositories. Clone options are not yet supported.

Thanks to Duke Leto for helping me out with one of the issues I mentioned last week, regarding conversion from C strings to Parrot strings.