summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Lobanov <gaussblurinc@gmail.com>2021-05-12 10:30:12 +0300
committerDmitry Lobanov <gaussblurinc@gmail.com>2021-05-12 10:30:12 +0300
commit7d9599bd22521627b50527d394f1bb7c51252139 (patch)
treef6e7fed820fb0e8ff949a24469f4bbe0b18c37d1
parenta2d953e5ed48112ec132fc0f38f92ba66095c477 (diff)
downloadlibgit2-7d9599bd22521627b50527d394f1bb7c51252139.tar.gz
branch: git branch upstream merge has been exposed.
-rw-r--r--include/git2/branch.h13
-rw-r--r--src/branch.c8
2 files changed, 21 insertions, 0 deletions
diff --git a/include/git2/branch.h b/include/git2/branch.h
index 0c0cc7ff7..24ea7f7d0 100644
--- a/include/git2/branch.h
+++ b/include/git2/branch.h
@@ -305,6 +305,19 @@ GIT_EXTERN(int) git_branch_remote_name(
GIT_EXTERN(int) git_branch_upstream_remote(git_buf *buf, git_repository *repo, const char *refname);
/**
+ * Retrieve the upstream merge of a local branch
+ *
+ * This will return the currently configured "branch.*.merge" for a given
+ * branch. This branch must be local.
+ *
+ * @param buf the buffer into which to write the name
+ * @param repo the repository in which to look
+ * @param refname the full name of the branch
+ * @return 0 or an error code
+ */
+ GIT_EXTERN(int) git_branch_upstream_merge(git_buf *buf, git_repository *repo, const char *refname);
+
+/**
* Determine whether a branch name is valid, meaning that (when prefixed
* with `refs/heads/`) that it is a valid reference name, and that any
* additional branch name restrictions are imposed (eg, it cannot start
diff --git a/src/branch.c b/src/branch.c
index ff790b980..55b748cb2 100644
--- a/src/branch.c
+++ b/src/branch.c
@@ -492,6 +492,14 @@ static int git_branch_upstream_with_format(git_buf *buf, git_repository *repo, c
return error;
}
+int git_branch_upstream_remote(git_buf *buf, git_repository *repo, const char *refname) {
+ git_branch_upstream_with_format(buf, repo, refname, "branch.%s.remote");
+}
+
+int git_branch_upstream_merge(git_buf *buf, git_repository *repo, const char *refname) {
+ git_branch_upstream_with_format(buf, repo, refname, "branch.%s.merge");
+}
+
int git_branch_remote_name(git_buf *buf, git_repository *repo, const char *refname)
{
git_strarray remote_list = {0};