Rugged 0.22.1b1
Pre-releaseChanges since Rugged 0.21
- Add 
Rugged::Tree#count_recursive. 
This counts all blobs in a tree, recursively, with an optional limit
to bail early. This allows asking things like: "Are there more
than 1 million files in this repo?" in a very performant way.
Fixes #464.
Andy Delcambre
- Update bundled libgit2 to 0.22.1.
 
See https://github.com/libgit2/libgit2/releases/tag/v0.22.0 and
https://github.com/libgit2/libgit2/releases/tag/v0.22.1 for a list
of fixed issues and new features.
Arthur Schreiber
- Add missing handling of libgit2 errors in 
Rugged::BranchCollection#each
andRugged::BranchCollection#each_name. 
Fixes #457.
aiionx
- The 
Rugged::Tree::BuilderAPI was changed to account for libgit2 changes. 
When creating a new Rugged::Tree::Builder instance through
Rugged::Tree::Builder.new you have to pass a repository instance,
while Rugged::Tree::Builder#write does not take any arguments anymore.
Vicent Martí
- Add alternative backend support (experimental).
 
Bare repositories can now be stored using an alternative backend.
Fixes #410.
Viktor Charypar
- Replace 
Remote#rename!withRemoteCollection#rename. 
This brings the RemoteCollection more in line with the API of
ReferenceCollection and BranchCollection.
Arthur Schreiber
- Remove URL validation from 
Remote#url=,Remote#push_url=,
RemoteCollection#create_anonymousandRemoteCollection#create,
as the underlying functiongit_remote_supported_url()was removed
from libgit2. 
Arthur Schreiber
- Add 
Repository#merge_bases. 
This returns an array containing all merge bases between one or
multiple commits.
Arthur Schreiber
- Add submodule support.
 
Expose git submodules functionality through Rugged::Submodule and
Rugged::SubmoduleCollection.
Nikolai Vladimirov
- Add 
Rugged::Walker#push_range. 
Evgeniy Sokovikov
- Implement 
Rugged::Blob::HashSignatureandRugged::Blob#hashsig. 
Allows similarity detection of Rugged::Blob instances against other blobs or
arbitrary strings.
Vicent Martí
- Add 
Rugged::Repository#attributes. 
This method allows accessing the attributes for different path names as
specified by .gitattributes files.
Vicent Martí
- Add 
Rugged::TagCollection#create_annotation. 
This method allows the creation of a tag object, but without creating
a tag reference.
Charlie Somerville
- Add 
Rugged::Repository#cherrypick. 
Arthur Schreiber
- Add 
Rugged::Repository#descendant_of? 
Jake Douglas
Rugged::Index#read_treenow actually checks that the given object is a
Rugged::Treeinstance.
Fixes #401.
Andy Delcambre
- Add 
Rugged::Repository#expand_oids. 
This allows expanding a list of shortened SHA1 strings, optionally restricting
the expansion to a specific object type.
Vicent Martí
- Add 
Rugged::Remote#check_connection. 
This is useful if one needs to check if it is possible to fetch/push
from/to the remote.
Basically, it is analogue to git fetch --dry-run and git push --dry-run.
Dmitry Medvinsky
- Remove defunct 
Rugged::Diff::Line#hunkandRugged::Diff::Line#owner. 
Fixes #390.
Arthur Schreiber
- Remove 
Rugged::Diff#treeand changeRugged::Diff#ownerto return the
repository that theRugged::Diffobject belongs to. 
We need to keep a reference from the Rugged::Diff to the repository to
ensure that the underlying libgit2 data does not get freed accidentally.
Fixes #389.
Arthur Schreiber
- Add 
#additionsand#deletionstoRugged::Patch. 
Mindaugas Mozūras