]> git.ipfire.org Git - thirdparty/git.git/commitdiff
refs: convert dwim_log to struct object_id
authorbrian m. carlson <sandals@crustytoothpaste.net>
Sun, 15 Oct 2017 22:06:59 +0000 (22:06 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 16 Oct 2017 02:05:51 +0000 (11:05 +0900)
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/reflog.c
reflog-walk.c
refs.c
refs.h
sha1_name.c

index 302fafbeefd7049d291824ec5c3aa48870e036c1..cd4c4847b786a7d8a2066b2acfa07c925e872482 100644 (file)
@@ -602,7 +602,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
        for (; i < argc; i++) {
                char *ref;
                struct object_id oid;
-               if (!dwim_log(argv[i], strlen(argv[i]), oid.hash, &ref)) {
+               if (!dwim_log(argv[i], strlen(argv[i]), &oid, &ref)) {
                        status |= error("%s points nowhere!", argv[i]);
                        continue;
                }
@@ -668,7 +668,7 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)
                        continue;
                }
 
-               if (!dwim_log(argv[i], spec - argv[i], oid.hash, &ref)) {
+               if (!dwim_log(argv[i], spec - argv[i], &oid, &ref)) {
                        status |= error("no reflog for '%s'", argv[i]);
                        continue;
                }
index 842b2f77dc3e40a2eb296bfade00d9d2104ff9e1..5008bbf6ada3707009722e3a3ca5b37437fbfb24 100644 (file)
@@ -161,7 +161,7 @@ int add_reflog_for_walk(struct reflog_walk_info *info,
                        struct object_id oid;
                        char *b;
                        int ret = dwim_log(branch, strlen(branch),
-                                          oid.hash, &b);
+                                          &oid, &b);
                        if (ret > 1)
                                free(b);
                        else if (ret == 1) {
diff --git a/refs.c b/refs.c
index 9bb555e7ffce38bc699d0f26a118cd87da460607..ecb43a113e8e38631f60745637a571805993aa30 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -497,7 +497,7 @@ int expand_ref(const char *str, int len, struct object_id *oid, char **ref)
        return refs_found;
 }
 
-int dwim_log(const char *str, int len, unsigned char *sha1, char **log)
+int dwim_log(const char *str, int len, struct object_id *oid, char **log)
 {
        char *last_branch = substitute_branch_name(&str, &len);
        const char **p;
@@ -506,13 +506,13 @@ int dwim_log(const char *str, int len, unsigned char *sha1, char **log)
 
        *log = NULL;
        for (p = ref_rev_parse_rules; *p; p++) {
-               unsigned char hash[20];
+               struct object_id hash;
                const char *ref, *it;
 
                strbuf_reset(&path);
                strbuf_addf(&path, *p, len, str);
                ref = resolve_ref_unsafe(path.buf, RESOLVE_REF_READING,
-                                        hash, NULL);
+                                        hash.hash, NULL);
                if (!ref)
                        continue;
                if (reflog_exists(path.buf))
@@ -523,7 +523,7 @@ int dwim_log(const char *str, int len, unsigned char *sha1, char **log)
                        continue;
                if (!logs_found++) {
                        *log = xstrdup(it);
-                       hashcpy(sha1, hash);
+                       oidcpy(oid, &hash);
                }
                if (!warn_ambiguous_refs)
                        break;
diff --git a/refs.h b/refs.h
index 0d864b0ab1aa62d578ea2b1df02bd6d8c130ef85..9d59c414aafd5de98e0861ebe9395e9037dcdc6f 100644 (file)
--- a/refs.h
+++ b/refs.h
@@ -141,7 +141,7 @@ int refname_match(const char *abbrev_name, const char *full_name);
 
 int expand_ref(const char *str, int len, struct object_id *oid, char **ref);
 int dwim_ref(const char *str, int len, struct object_id *oid, char **ref);
-int dwim_log(const char *str, int len, unsigned char *sha1, char **ref);
+int dwim_log(const char *str, int len, struct object_id *oid, char **ref);
 
 /*
  * A ref_transaction represents a collection of reference updates that
index d8ff83175913d21e747195e0aad56ef28092441f..514915460f4df9320e3ae7a5f9a97ea59c8c3f13 100644 (file)
@@ -656,7 +656,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid,
                /* allow "@{...}" to mean the current branch reflog */
                refs_found = dwim_ref("HEAD", 4, oid, &real_ref);
        else if (reflog_len)
-               refs_found = dwim_log(str, len, oid->hash, &real_ref);
+               refs_found = dwim_log(str, len, oid, &real_ref);
        else
                refs_found = dwim_ref(str, len, oid, &real_ref);