summaryrefslogtreecommitdiff
path: root/include/git2
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@github.com>2021-07-27 18:59:15 -0400
committerGitHub <noreply@github.com>2021-07-27 18:59:15 -0400
commitf08cae109d9475a29209d444cf312388e7e64d83 (patch)
tree8198be68b85ccf4d2e79a6a48d530e13c4fd46e1 /include/git2
parent08c79128be38b6704cfdf01bca037f3fbaabf847 (diff)
parent8d453f16385c04abfba0211f1e7fb1621f26d609 (diff)
downloadlibgit2-f08cae109d9475a29209d444cf312388e7e64d83.tar.gz
Merge pull request #5767 from lhchavez/cgraph-reachable-from-any
Diffstat (limited to 'include/git2')
-rw-r--r--include/git2/graph.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/include/git2/graph.h b/include/git2/graph.h
index 213ae9777..712ae474a 100644
--- a/include/git2/graph.h
+++ b/include/git2/graph.h
@@ -43,8 +43,9 @@ GIT_EXTERN(int) git_graph_ahead_behind(size_t *ahead, size_t *behind, git_reposi
* Note that a commit is not considered a descendant of itself, in contrast
* to `git merge-base --is-ancestor`.
*
- * @param commit a previously loaded commit.
- * @param ancestor a potential ancestor commit.
+ * @param repo the repository where the commits exist
+ * @param commit a previously loaded commit
+ * @param ancestor a potential ancestor commit
* @return 1 if the given commit is a descendant of the potential ancestor,
* 0 if not, error code otherwise.
*/
@@ -53,6 +54,23 @@ GIT_EXTERN(int) git_graph_descendant_of(
const git_oid *commit,
const git_oid *ancestor);
+/**
+ * Determine if a commit is reachable from any of a list of commits by
+ * following parent edges.
+ *
+ * @param repo the repository where the commits exist
+ * @param commit a previously loaded commit
+ * @param length the number of commits in the provided `descendant_array`
+ * @param descendant_array oids of the commits
+ * @return 1 if the given commit is an ancestor of any of the given potential
+ * descendants, 0 if not, error code otherwise.
+ */
+GIT_EXTERN(int) git_graph_reachable_from_any(
+ git_repository *repo,
+ const git_oid *commit,
+ const git_oid descendant_array[],
+ size_t length);
+
/** @} */
GIT_END_DECL
#endif