From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: git@vger.kernel.org
Cc: "Jeff King" <peff@peff.net>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Michael Haggerty" <mhagger@alum.mit.edu>
Subject: [PATCH v3 13/13] remote: convert functions to struct object_id
Date: Fri, 9 Oct 2015 01:43:59 +0000 [thread overview]
Message-ID: <1444355039-186351-14-git-send-email-sandals@crustytoothpaste.net> (raw)
In-Reply-To: <1444355039-186351-1-git-send-email-sandals@crustytoothpaste.net>
Convert several unsigned char arrays to use struct object_id instead,
and change hard-coded 40-based constants to use GIT_SHA1_HEXSZ as well.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
remote.c | 64 ++++++++++++++++++++++++++++++++--------------------------------
1 file changed, 32 insertions(+), 32 deletions(-)
diff --git a/remote.c b/remote.c
index c72d7966..92dc8d69 100644
--- a/remote.c
+++ b/remote.c
@@ -492,7 +492,7 @@ static void alias_all_urls(void)
static void read_config(void)
{
static int loaded;
- unsigned char sha1[20];
+ struct object_id oid;
const char *head_ref;
int flag;
@@ -501,7 +501,7 @@ static void read_config(void)
loaded = 1;
current_branch = NULL;
- head_ref = resolve_ref_unsafe("HEAD", 0, sha1, &flag);
+ head_ref = resolve_ref_unsafe("HEAD", 0, oid.hash, &flag);
if (head_ref && (flag & REF_ISSYMREF) &&
skip_prefix(head_ref, "refs/heads/", &head_ref)) {
current_branch = make_branch(head_ref, 0);
@@ -580,12 +580,12 @@ static struct refspec *parse_refspec_internal(int nr_refspec, const char **refsp
flags = REFNAME_ALLOW_ONELEVEL | (is_glob ? REFNAME_REFSPEC_PATTERN : 0);
if (fetch) {
- unsigned char unused[40];
+ struct object_id unused;
/* LHS */
if (!*rs[i].src)
; /* empty is ok; it means "HEAD" */
- else if (llen == 40 && !get_sha1_hex(rs[i].src, unused))
+ else if (llen == GIT_SHA1_HEXSZ && !get_oid_hex(rs[i].src, &unused))
rs[i].exact_sha1 = 1; /* ok */
else if (!check_refname_format(rs[i].src, flags))
; /* valid looking ref is ok */
@@ -1118,7 +1118,7 @@ static struct ref *alloc_delete_ref(void)
static int try_explicit_object_name(const char *name,
struct ref **match)
{
- unsigned char sha1[20];
+ struct object_id oid;
if (!*name) {
if (match)
@@ -1126,12 +1126,12 @@ static int try_explicit_object_name(const char *name,
return 0;
}
- if (get_sha1(name, sha1))
+ if (get_sha1(name, oid.hash))
return -1;
if (match) {
*match = alloc_ref(name);
- hashcpy((*match)->new_oid.hash, sha1);
+ oidcpy(&(*match)->new_oid, &oid);
}
return 0;
}
@@ -1146,10 +1146,10 @@ static struct ref *make_linked_ref(const char *name, struct ref ***tail)
static char *guess_ref(const char *name, struct ref *peer)
{
struct strbuf buf = STRBUF_INIT;
- unsigned char sha1[20];
+ struct object_id oid;
const char *r = resolve_ref_unsafe(peer->name, RESOLVE_REF_READING,
- sha1, NULL);
+ oid.hash, NULL);
if (!r)
return NULL;
@@ -1207,12 +1207,12 @@ static int match_explicit(struct ref *src, struct ref *dst,
return -1;
if (!dst_value) {
- unsigned char sha1[20];
+ struct object_id oid;
int flag;
dst_value = resolve_ref_unsafe(matched_src->name,
RESOLVE_REF_READING,
- sha1, &flag);
+ oid.hash, &flag);
if (!dst_value ||
((flag & REF_ISSYMREF) &&
!starts_with(dst_value, "refs/heads/")))
@@ -1328,13 +1328,13 @@ struct tips {
int nr, alloc;
};
-static void add_to_tips(struct tips *tips, const unsigned char *sha1)
+static void add_to_tips(struct tips *tips, const struct object_id *oid)
{
struct commit *commit;
- if (is_null_sha1(sha1))
+ if (is_null_oid(oid))
return;
- commit = lookup_commit_reference_gently(sha1, 1);
+ commit = lookup_commit_reference_gently(oid->hash, 1);
if (!commit || (commit->object.flags & TMP_MARK))
return;
commit->object.flags |= TMP_MARK;
@@ -1358,9 +1358,9 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
for (ref = *dst; ref; ref = ref->next) {
if (ref->peer_ref &&
!is_null_oid(&ref->peer_ref->new_oid))
- add_to_tips(&sent_tips, ref->peer_ref->new_oid.hash);
+ add_to_tips(&sent_tips, &ref->peer_ref->new_oid);
else
- add_to_tips(&sent_tips, ref->old_oid.hash);
+ add_to_tips(&sent_tips, &ref->old_oid);
if (starts_with(ref->name, "refs/tags/"))
string_list_append(&dst_tag, ref->name);
}
@@ -1645,7 +1645,7 @@ static void set_merge(struct branch *ret)
{
struct remote *remote;
char *ref;
- unsigned char sha1[20];
+ struct object_id oid;
int i;
if (!ret)
@@ -1671,7 +1671,7 @@ static void set_merge(struct branch *ret)
strcmp(ret->remote_name, "."))
continue;
if (dwim_ref(ret->merge_name[i], strlen(ret->merge_name[i]),
- sha1, &ref) == 1)
+ oid.hash, &ref) == 1)
ret->merge[i]->dst = ref;
else
ret->merge[i]->dst = xstrdup(ret->merge_name[i]);
@@ -1831,10 +1831,10 @@ const char *branch_get_push(struct branch *branch, struct strbuf *err)
static int ignore_symref_update(const char *refname)
{
- unsigned char sha1[20];
+ struct object_id oid;
int flag;
- if (!resolve_ref_unsafe(refname, 0, sha1, &flag))
+ if (!resolve_ref_unsafe(refname, 0, oid.hash, &flag))
return 0; /* non-existing refs are OK */
return (flag & REF_ISSYMREF);
}
@@ -2033,9 +2033,9 @@ int ref_newer(const struct object_id *new_oid, const struct object_id *old_oid)
int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
const char **upstream_name)
{
- unsigned char sha1[20];
+ struct object_id oid;
struct commit *ours, *theirs;
- char symmetric[84];
+ char symmetric[GIT_SHA1_HEXSZ * 2 + 4];
struct rev_info revs;
const char *rev_argv[10], *base;
int rev_argc;
@@ -2048,15 +2048,15 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
return -1;
/* Cannot stat if what we used to build on no longer exists */
- if (read_ref(base, sha1))
+ if (read_ref(base, oid.hash))
return -1;
- theirs = lookup_commit_reference(sha1);
+ theirs = lookup_commit_reference(oid.hash);
if (!theirs)
return -1;
- if (read_ref(branch->refname, sha1))
+ if (read_ref(branch->refname, oid.hash))
return -1;
- ours = lookup_commit_reference(sha1);
+ ours = lookup_commit_reference(oid.hash);
if (!ours)
return -1;
@@ -2075,8 +2075,8 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
rev_argv[rev_argc] = NULL;
strcpy(symmetric, oid_to_hex(&ours->object.oid));
- strcpy(symmetric + 40, "...");
- strcpy(symmetric + 43, oid_to_hex(&theirs->object.oid));
+ strcpy(symmetric + GIT_SHA1_HEXSZ, "...");
+ strcpy(symmetric + GIT_SHA1_HEXSZ + 3, oid_to_hex(&theirs->object.oid));
init_revisions(&revs, NULL);
setup_revisions(rev_argc, rev_argv, &revs, NULL);
@@ -2369,14 +2369,14 @@ int is_empty_cas(const struct push_cas_option *cas)
* If we cannot do so, return negative to signal an error.
*/
static int remote_tracking(struct remote *remote, const char *refname,
- unsigned char sha1[20])
+ struct object_id *oid)
{
char *dst;
dst = apply_refspecs(remote->fetch, remote->fetch_refspec_nr, refname);
if (!dst)
return -1; /* no tracking ref for refname at remote */
- if (read_ref(dst, sha1))
+ if (read_ref(dst, oid->hash))
return -1; /* we know what the tracking ref is but we cannot read it */
return 0;
}
@@ -2395,7 +2395,7 @@ static void apply_cas(struct push_cas_option *cas,
ref->expect_old_sha1 = 1;
if (!entry->use_tracking)
hashcpy(ref->old_oid_expect.hash, cas->entry[i].expect);
- else if (remote_tracking(remote, ref->name, ref->old_oid_expect.hash))
+ else if (remote_tracking(remote, ref->name, &ref->old_oid_expect))
ref->expect_old_no_trackback = 1;
return;
}
@@ -2405,7 +2405,7 @@ static void apply_cas(struct push_cas_option *cas,
return;
ref->expect_old_sha1 = 1;
- if (remote_tracking(remote, ref->name, ref->old_oid_expect.hash))
+ if (remote_tracking(remote, ref->name, &ref->old_oid_expect))
ref->expect_old_no_trackback = 1;
}
--
2.6.1
prev parent reply other threads:[~2015-10-09 1:45 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-09 1:43 [PATCH v3 00/13] object_id part 2 brian m. carlson
2015-10-09 1:43 ` [PATCH v3 01/13] refs: convert some internal functions to use object_id brian m. carlson
2015-10-13 11:43 ` Michael Haggerty
2015-10-14 2:50 ` brian m. carlson
2015-10-09 1:43 ` [PATCH v3 02/13] sha1_file: introduce has_object_file helper brian m. carlson
2015-10-09 1:43 ` [PATCH v3 03/13] Convert struct ref to use object_id brian m. carlson
2015-10-09 1:43 ` [PATCH v3 04/13] add_sought_entry_mem: convert to struct object_id brian m. carlson
2015-10-09 1:43 ` [PATCH v3 05/13] parse_fetch: convert to use " brian m. carlson
2015-10-09 1:43 ` [PATCH v3 06/13] get_remote_heads: convert to " brian m. carlson
2015-10-09 1:43 ` [PATCH v3 07/13] push_refs_with_export: " brian m. carlson
2015-10-09 1:43 ` [PATCH v3 08/13] ref_newer: convert to use " brian m. carlson
2015-10-09 1:43 ` [PATCH v3 09/13] object: introduce get_object_hash macro brian m. carlson
2015-10-09 1:43 ` [PATCH v3 10/13] Add several uses of get_object_hash brian m. carlson
2015-10-09 1:43 ` [PATCH v3 11/13] Convert struct object to object_id brian m. carlson
2015-10-09 1:43 ` [PATCH v3 12/13] Remove get_object_hash brian m. carlson
2015-10-09 1:43 ` brian m. carlson [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1444355039-186351-14-git-send-email-sandals@crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=git@vger.kernel.org \
--cc=mhagger@alum.mit.edu \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).