From 8a629afedc947a2a693955b36550f27fb74891d4 Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Wed, 31 Jan 2018 00:02:00 +0000 Subject: [PATCH] examples: move refish resolution function in common --- examples/common.c | 24 ++++++++++++++++++++++++ examples/common.h | 5 +++++ examples/merge.c | 23 ----------------------- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/examples/common.c b/examples/common.c index 118072044..2b4a062e8 100644 --- a/examples/common.c +++ b/examples/common.c @@ -12,6 +12,8 @@ * . */ +#include + #include "common.h" void check_lg2(int error, const char *message, const char *extra) @@ -245,3 +247,25 @@ void *xrealloc(void *oldp, size_t newsz) return p; } +int resolve_refish(git_annotated_commit **commit, git_repository *repo, const char *refish) +{ + git_reference *ref; + int err = 0; + git_oid oid; + + assert(commit != NULL); + + err = git_reference_dwim(&ref, repo, refish); + if (err == GIT_OK) { + git_annotated_commit_from_ref(commit, repo, ref); + git_reference_free(ref); + return 0; + } + + err = git_oid_fromstr(&oid, refish); + if (err == GIT_OK) { + err = git_annotated_commit_lookup(commit, repo, &oid); + } + + return err; +} diff --git a/examples/common.h b/examples/common.h index af42324c2..503c8fbbf 100644 --- a/examples/common.h +++ b/examples/common.h @@ -108,3 +108,8 @@ extern void treeish_to_tree( * A realloc that exits on failure */ extern void *xrealloc(void *oldp, size_t newsz); + +/** + * Convert a refish to an annotated commit. + */ +extern int resolve_refish(git_annotated_commit **commit, git_repository *repo, const char *refish); diff --git a/examples/merge.c b/examples/merge.c index 59982cb9b..c819ad208 100644 --- a/examples/merge.c +++ b/examples/merge.c @@ -87,29 +87,6 @@ static void parse_options(const char **repo_path, merge_options *opts, int argc, } } -static int resolve_refish(git_annotated_commit **commit, git_repository *repo, const char *refish) -{ - git_reference *ref; - int err = 0; - git_oid oid; - - assert(commit != NULL); - - err = git_reference_dwim(&ref, repo, refish); - if (err == GIT_OK) { - git_annotated_commit_from_ref(commit, repo, ref); - git_reference_free(ref); - return 0; - } - - err = git_oid_fromstr(&oid, refish); - if (err == GIT_OK) { - err = git_annotated_commit_lookup(commit, repo, &oid); - } - - return err; -} - static int resolve_heads(git_repository *repo, merge_options *opts) { git_annotated_commit **annotated = calloc(opts->heads_count, sizeof(git_annotated_commit *));