summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-07-20 16:39:22 +0200
committernulltoken <emeric.fermas@gmail.com>2012-07-24 16:09:49 +0200
commitef4d795ec5f8cd39de72cfbc75565236205833a4 (patch)
treeae0681cf9698509c3ff1563d3b329709de2ec162
parentfb910281d6598e2c235f6ec93384d4e08838d655 (diff)
downloadlibgit2-ef4d795ec5f8cd39de72cfbc75565236205833a4.tar.gz
refs: drop git_reference_remote_tracking_from_branch()
-rw-r--r--include/git2/refs.h21
-rw-r--r--src/refs.c74
-rw-r--r--tests-clar/refs/remotetracking.c49
3 files changed, 0 insertions, 144 deletions
diff --git a/include/git2/refs.h b/include/git2/refs.h
index ac876ebb0..8dd8e3116 100644
--- a/include/git2/refs.h
+++ b/include/git2/refs.h
@@ -363,27 +363,6 @@ GIT_EXTERN(int) git_reference_foreach_glob(
*/
GIT_EXTERN(int) git_reference_has_log(git_reference *ref);
-
-/**
- * Return the reference supporting the remote tracking branch,
- * given a reference branch.
- *
- * The input reference has to be located in the `refs/heads`
- * namespace.
- *
- * @param tracking_ref Pointer where to store the retrieved
- * reference.
- *
- * @param branch_ref A git local branch reference.
- *
- * @return 0 on success; GIT_ENOTFOUND when no remote tracking
- * reference exists, otherwise an error code.
- */
-GIT_EXTERN(int) git_reference_remote_tracking_from_branch(
- git_reference **tracking_ref,
- git_reference *branch_ref
-);
-
/**
* Check if a reference is a local branch.
*
diff --git a/src/refs.c b/src/refs.c
index d08ea9604..32f54fc31 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -11,7 +11,6 @@
#include "fileops.h"
#include "pack.h"
#include "reflog.h"
-#include "config.h"
#include <git2/tag.h>
#include <git2/object.h>
@@ -1816,79 +1815,6 @@ int git_reference_has_log(
return result;
}
-//TODO: How about also taking care of local tracking branches?
-//cf. http://alblue.bandlem.com/2011/07/git-tip-of-week-tracking-branches.html
-int git_reference_remote_tracking_from_branch(
- git_reference **tracking_ref,
- git_reference *branch_ref)
-{
- git_config *config = NULL;
- const char *name, *remote, *merge;
- git_buf buf = GIT_BUF_INIT;
- int error = -1;
-
- assert(tracking_ref && branch_ref);
-
- name = git_reference_name(branch_ref);
-
- if (git__prefixcmp(name, GIT_REFS_HEADS_DIR)) {
- giterr_set(
- GITERR_INVALID,
- "Failed to retrieve tracking reference - '%s' is not a branch.",
- name);
- return -1;
- }
-
- if (git_repository_config(&config, branch_ref->owner) < 0)
- return -1;
-
- if (git_buf_printf(
- &buf,
- "branch.%s.remote",
- name + strlen(GIT_REFS_HEADS_DIR)) < 0)
- goto cleanup;
-
- if ((error = git_config_get_string(&remote, config, git_buf_cstr(&buf))) < 0)
- goto cleanup;
-
- error = -1;
-
- git_buf_clear(&buf);
-
- //TODO: Is it ok to fail when no merge target is found?
- if (git_buf_printf(
- &buf,
- "branch.%s.merge",
- name + strlen(GIT_REFS_HEADS_DIR)) < 0)
- goto cleanup;
-
- if (git_config_get_string(&merge, config, git_buf_cstr(&buf)) < 0)
- goto cleanup;
-
- //TODO: Should we test this?
- if (git__prefixcmp(merge, GIT_REFS_HEADS_DIR))
- goto cleanup;
-
- git_buf_clear(&buf);
-
- if (git_buf_printf(
- &buf,
- "refs/remotes/%s/%s",
- remote,
- merge + strlen(GIT_REFS_HEADS_DIR)) < 0)
- goto cleanup;
-
- error = git_reference_lookup(
- tracking_ref,
- branch_ref->owner,
- git_buf_cstr(&buf));
-
-cleanup:
- git_config_free(config);
- git_buf_free(&buf);
- return error;
-}
-
int git_reference_is_branch(git_reference *ref)
{
assert(ref);
diff --git a/tests-clar/refs/remotetracking.c b/tests-clar/refs/remotetracking.c
deleted file mode 100644
index c4ec588ee..000000000
--- a/tests-clar/refs/remotetracking.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "clar_libgit2.h"
-
-static git_repository *g_repo;
-
-void test_refs_remotetracking__initialize(void)
-{
- cl_git_pass(git_repository_open(&g_repo, cl_fixture("testrepo.git")));
-}
-
-void test_refs_remotetracking__cleanup(void)
-{
- git_repository_free(g_repo);
-}
-
-void test_refs_remotetracking__unfound_returns_GIT_ENOTFOUND(void)
-{
- git_reference *branch, *tracking;
-
- cl_git_pass(git_reference_lookup(&branch, g_repo, "refs/heads/subtrees"));
-
- cl_assert_equal_i(GIT_ENOTFOUND, git_reference_remote_tracking_from_branch(&tracking, branch));
-
- git_reference_free(branch);
-}
-
-void test_refs_remotetracking__retrieving_from_a_non_head_fails(void)
-{
- git_reference *branch, *tracking;
-
- cl_git_pass(git_reference_lookup(&branch, g_repo, "refs/tags/e90810b"));
-
- cl_git_fail(git_reference_remote_tracking_from_branch(&tracking, branch));
-
- git_reference_free(branch);
-}
-
-void test_refs_remotetracking__can_retrieve_a_remote_tracking_branch_reference(void)
-{
- git_reference *branch, *tracking;
-
- cl_git_pass(git_reference_lookup(&branch, g_repo, "refs/heads/master"));
-
- cl_git_pass(git_reference_remote_tracking_from_branch(&tracking, branch));
-
- cl_assert_equal_s("refs/remotes/test/master", git_reference_name(tracking));
-
- git_reference_free(branch);
- git_reference_free(tracking);
-}