Skip to content
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

utility to test if a commit is a descendent of one or more commits #815

Closed
chadrik opened this issue Sep 5, 2018 · 4 comments
Closed

utility to test if a commit is a descendent of one or more commits #815

chadrik opened this issue Sep 5, 2018 · 4 comments
Labels

Comments

@chadrik
Copy link
Contributor

chadrik commented Sep 5, 2018

Hi,
I'm looking to recreate the behavior of git branch --contains <commit> using pygit2. The core of the routine in git is implemented here and here in is_descendent_of and merge_bases_many. I've looked through the pygit2 source for the building blocks of something similar but couldn't find anything.

A few questions:

  • is there something similar to this in pygit2 that I missed?
  • if no: is this considered too "high level" for this project?
  • if no: would you be interested in a pull request for this feature should I find the time to do it?
  • if yes: do you think this would be better implemented in C or python?

thanks!

@jdavid
Copy link
Member

jdavid commented Sep 6, 2018

I think there's not. Pull request welcome.

https://libgit2.org/libgit2/#HEAD/group/graph/git_graph_descendant_of and https://libgit2.org/libgit2/#HEAD/group/merge/git_merge_base_many are libgit2's equivalent of those two functions, right?

Then wrap both of them and write the rest in Python.

Thanks!

@chadrik
Copy link
Contributor Author

chadrik commented Sep 6, 2018

Sounds easy enough. Thanks for the guidance.

@jdavid
Copy link
Member

jdavid commented Sep 16, 2018

@chadrik This is done with PR #816 right? Or is there something else to do?

@chadrik
Copy link
Contributor Author

chadrik commented Sep 16, 2018

Yup, all done. Thanks for the quick feedback throughout the process.

@chadrik chadrik closed this as completed Sep 16, 2018
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Dec 1, 2018
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>`_
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants