-
-
Notifications
You must be signed in to change notification settings - Fork 382
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for git_graph_descendant_of #816
Conversation
Added as Repository.descendant_of
Also, do you think it's worth adding a feature like this: branches = repo.branches.with_commit(oid)
for branch in branches:
print(branch)
print('master' in branches) I would achieve this with a new |
Yes please add to the docs, just in |
Yes that sounds good, but would not be better |
I added the docs. Let me know if you had something more in mind.
That was my original thought, but I felt that |
pygit2/repository.py
Outdated
@@ -1159,14 +1160,23 @@ def get(self, key): | |||
|
|||
def __iter__(self): | |||
for branch_name in self._repository.listall_branches(self._flag): | |||
yield branch_name | |||
if self._valid(self[branch_name]): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would rather call self._valid(branch_name)
to avoid a lookup in the case that self._commit is None
, which is probably the most common case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, but I don't want to incur the lookup in the case of __getitem__
where we already have a branch reference object. Check my latest commit for what I think is a good compromise.
Sounds good, true Could you add a test for Thanks! |
Yep, just wanted to get sign off on the general design first. |
Updated! Let me know what you think. |
Merged, thanks! |
0.27.2 (2018-09-16) ------------------------- - Add support for Python 3.7 `#809 <https://github.com/libgit2/pygit2/issues/809>`_ - New ``Object.short_id`` `#799 <https://github.com/libgit2/pygit2/issues/799>`_ `#806 <https://github.com/libgit2/pygit2/pull/806>`_ `#807 <https://github.com/libgit2/pygit2/pull/807>`_ - New ``Repository.descendant_of`` and ``Repository.branches.with_commit`` `#815 <https://github.com/libgit2/pygit2/issues/815>`_ `#816 <https://github.com/libgit2/pygit2/pull/816>`_ - Fix repository initialization in ``clone_repository(...)`` `#818 <https://github.com/libgit2/pygit2/issues/818>`_ - Fix several warnings and errors, commits `cd896ddc <https://github.com/libgit2/pygit2/commit/cd896ddc>`_ and `dfa536a3 <https://github.com/libgit2/pygit2/commit/dfa536a3>`_ - Documentation fixes and improvements `#805 <https://github.com/libgit2/pygit2/pull/805>`_ `#808 <https://github.com/libgit2/pygit2/pull/808>`_ 0.27.1 (2018-06-02) ------------------------- Breaking changes: - Now ``discover_repository`` returns ``None`` if repository not found, instead of raising ``KeyError`` `#531 <https://github.com/libgit2/pygit2/issues/531>`_ Other changes: - New ``DiffLine.raw_content`` `#610 <https://github.com/libgit2/pygit2/issues/610>`_ - Fix tests failing in some cases `#795 <https://github.com/libgit2/pygit2/issues/795>`_ - Automatize wheels upload to pypi `#563 <https://github.com/libgit2/pygit2/issues/563>`_
Fixes issue #815
Let me know if this should be added to the docs, and if so, which section.