summaryrefslogtreecommitdiff
path: root/include/git2
diff options
context:
space:
mode:
authorJameson Miller <jamill@microsoft.com>2013-02-08 11:05:47 -0500
committerJameson Miller <jamill@microsoft.com>2013-02-11 11:36:22 -0500
commit2e3e8c889b5fac03ca0f3b1f1303bbdabb15f1a5 (patch)
treec3b9c06a9756e6d2a2f0ab460e94665804a8fbf3 /include/git2
parentff9df88396c79d16f560308ce1b874682868ba8f (diff)
downloadlibgit2-2e3e8c889b5fac03ca0f3b1f1303bbdabb15f1a5.tar.gz
Teach remote branch to return its remote
Diffstat (limited to 'include/git2')
-rw-r--r--include/git2/branch.h25
-rw-r--r--include/git2/refspec.h9
2 files changed, 34 insertions, 0 deletions
diff --git a/include/git2/branch.h b/include/git2/branch.h
index 54a1ab118..3c7fb443c 100644
--- a/include/git2/branch.h
+++ b/include/git2/branch.h
@@ -210,6 +210,31 @@ GIT_EXTERN(int) git_branch_tracking_name(
GIT_EXTERN(int) git_branch_is_head(
git_reference *branch);
+/**
+ * Return the name of remote that the remote tracking branch belongs to.
+ *
+ * @param remote_name_out The user-allocated buffer which will be
+ * filled with the name of the remote. Pass NULL if you just want to
+ * get the needed size of the name of the remote as the output value.
+ *
+ * @param buffer_size Size of the `out` buffer in bytes.
+ *
+ * @param repo The repository where the branch lives.
+ *
+ * @param branch The reference to the remote tracking branch.
+ *
+ * @return Number of characters in the reference name
+ * including the trailing NUL byte; GIT_ENOTFOUND
+ * when no remote matching remote was gound,
+ * GIT_EAMBIGUOUS when the branch maps to several remotes,
+ * otherwise an error code.
+ */
+GIT_EXTERN(int) git_branch_remote_name(
+ char *remote_name_out,
+ size_t buffer_size,
+ git_repository *repo,
+ git_reference *branch);
+
/** @} */
GIT_END_DECL
#endif
diff --git a/include/git2/refspec.h b/include/git2/refspec.h
index ee06f8eca..3e83e41e2 100644
--- a/include/git2/refspec.h
+++ b/include/git2/refspec.h
@@ -53,6 +53,15 @@ GIT_EXTERN(int) git_refspec_force(const git_refspec *refspec);
GIT_EXTERN(int) git_refspec_src_matches(const git_refspec *refspec, const char *refname);
/**
+ * Check if a refspec's destination descriptor matches a reference
+ *
+ * @param refspec the refspec
+ * @param refname the name of the reference to check
+ * @return 1 if the refspec matches, 0 otherwise
+ */
+GIT_EXTERN(int) git_refspec_dst_matches(const git_refspec *refspec, const char *refname);
+
+/**
* Transform a reference to its target following the refspec's rules
*
* @param out where to store the target name