<commit_before>
*   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.

    *<NAME>*

*   Replace `Remote#rename!` with `RemoteCollection#rename`.

    This brings the `RemoteCollection` more in line with the API of
    `ReferenceCollection` and `BranchCollection`.

    *<NAME>*

*   Remove URL validation from `Remote#url=`, `Remote#push_url=`,
    `RemoteCollection#create_anonymous` and `RemoteCollection#create`,
    as the underlying function `git_remote_supported_url()` was removed
    from libgit2.

    *<NAME>*

*   Update to the latest libgit2 version (ce8822cb409917d0201f359cabe3ae55d25895da).

    *<NAME>*

*   Add `Repository#merge_bases`.<commit_msg>Add some more missing changelog entries.<commit_after>
*   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.

    *<NAME>*

*   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.

    *<NAME>*

*   Add missing handling of libgit2 errors in `Rugged::BranchCollection#each`
    and `Rugged::BranchCollection#each_name`.

    Fixes #457.

    *aiionx*

*   The `Rugged::Tree::Builder` API 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.

    *<NAME>*

*   Add alternative backend support (experimental).

    Bare repositories can now be stored using an alternative backend.

    Fixes #410.

    *<NAME>*

*   Replace `Remote#rename!` with `RemoteCollection#rename`.

    This brings the `RemoteCollection` more in line with the API of
    `ReferenceCollection` and `BranchCollection`.

    *<NAME>*

*   Remove URL validation from `Remote#url=`, `Remote#push_url=`,
    `RemoteCollection#create_anonymous` and `RemoteCollection#create`,
    as the underlying function `git_remote_supported_url()` was removed
    from libgit2.

    *<NAME>*

*   Add `Repository#merge_bases`.
{'fraction_non_alphanumeric': 0.09988156336360048, 'fraction_numerical': 0.024082116067903673, 'mean_word_length': 3.7276119402985075, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '704566', 'n_tokens_mistral': 834, 'n_tokens_neox': 778, 'n_words': 258}