From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: git@vger.kernel.org
Cc: Jeff King <peff@peff.net>,
Michael Haggerty <mhagger@alum.mit.edu>,
Brandon Williams <bmwill@google.com>
Subject: [PATCH 15/24] refs: convert read_ref_at to struct object_id
Date: Sun, 1 Oct 2017 22:08:22 +0000 [thread overview]
Message-ID: <20171001220831.214705-16-sandals@crustytoothpaste.net> (raw)
In-Reply-To: <20171001220831.214705-1-sandals@crustytoothpaste.net>
Convert the callers and internals, including struct read_ref_at_cb, of
read_ref_at to use struct object_id.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
builtin/show-branch.c | 5 ++---
refs.c | 34 +++++++++++++++++-----------------
refs.h | 2 +-
sha1_name.c | 3 +--
4 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/builtin/show-branch.c b/builtin/show-branch.c
index 722a7f4bec..8ef8ad10c5 100644
--- a/builtin/show-branch.c
+++ b/builtin/show-branch.c
@@ -731,7 +731,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
/* Ah, that is a date spec... */
timestamp_t at;
at = approxidate(reflog_base);
- read_ref_at(ref, flags, at, -1, oid.hash, NULL,
+ read_ref_at(ref, flags, at, -1, &oid, NULL,
NULL, NULL, &base);
}
}
@@ -743,8 +743,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
timestamp_t timestamp;
int tz;
- if (read_ref_at(ref, flags, 0, base+i, oid.hash, &logmsg,
- ×tamp, &tz, NULL)) {
+ if (read_ref_at(ref, flags, 0, base + i, &oid, &logmsg, ×tamp, &tz, NULL)) {
reflog = i;
break;
}
diff --git a/refs.c b/refs.c
index 6cbe2c1c6b..684dd75deb 100644
--- a/refs.c
+++ b/refs.c
@@ -734,11 +734,11 @@ struct read_ref_at_cb {
timestamp_t at_time;
int cnt;
int reccnt;
- unsigned char *sha1;
+ struct object_id *oid;
int found_it;
- unsigned char osha1[20];
- unsigned char nsha1[20];
+ struct object_id ooid;
+ struct object_id noid;
int tz;
timestamp_t date;
char **msg;
@@ -770,25 +770,25 @@ static int read_ref_at_ent(struct object_id *ooid, struct object_id *noid,
* we have not yet updated cb->[n|o]sha1 so they still
* hold the values for the previous record.
*/
- if (!is_null_sha1(cb->osha1)) {
- hashcpy(cb->sha1, noid->hash);
- if (hashcmp(cb->osha1, noid->hash))
+ if (!is_null_oid(&cb->ooid)) {
+ oidcpy(cb->oid, noid);
+ if (oidcmp(&cb->ooid, noid))
warning("Log for ref %s has gap after %s.",
cb->refname, show_date(cb->date, cb->tz, DATE_MODE(RFC2822)));
}
else if (cb->date == cb->at_time)
- hashcpy(cb->sha1, noid->hash);
- else if (hashcmp(noid->hash, cb->sha1))
+ oidcpy(cb->oid, noid);
+ else if (oidcmp(noid, cb->oid))
warning("Log for ref %s unexpectedly ended on %s.",
cb->refname, show_date(cb->date, cb->tz,
DATE_MODE(RFC2822)));
- hashcpy(cb->osha1, ooid->hash);
- hashcpy(cb->nsha1, noid->hash);
+ oidcpy(&cb->ooid, ooid);
+ oidcpy(&cb->noid, noid);
cb->found_it = 1;
return 1;
}
- hashcpy(cb->osha1, ooid->hash);
- hashcpy(cb->nsha1, noid->hash);
+ oidcpy(&cb->ooid, ooid);
+ oidcpy(&cb->noid, noid);
if (cb->cnt > 0)
cb->cnt--;
return 0;
@@ -808,15 +808,15 @@ static int read_ref_at_ent_oldest(struct object_id *ooid, struct object_id *noid
*cb->cutoff_tz = tz;
if (cb->cutoff_cnt)
*cb->cutoff_cnt = cb->reccnt;
- hashcpy(cb->sha1, ooid->hash);
- if (is_null_sha1(cb->sha1))
- hashcpy(cb->sha1, noid->hash);
+ oidcpy(cb->oid, ooid);
+ if (is_null_oid(cb->oid))
+ oidcpy(cb->oid, noid);
/* We just want the first entry */
return 1;
}
int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, int cnt,
- unsigned char *sha1, char **msg,
+ struct object_id *oid, char **msg,
timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt)
{
struct read_ref_at_cb cb;
@@ -829,7 +829,7 @@ int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, in
cb.cutoff_time = cutoff_time;
cb.cutoff_tz = cutoff_tz;
cb.cutoff_cnt = cutoff_cnt;
- cb.sha1 = sha1;
+ cb.oid = oid;
for_each_reflog_ent_reverse(refname, read_ref_at_ent, &cb);
diff --git a/refs.h b/refs.h
index 832ade2b13..3afecd2e8a 100644
--- a/refs.h
+++ b/refs.h
@@ -363,7 +363,7 @@ int safe_create_reflog(const char *refname, int force_create, struct strbuf *err
/** Reads log for the value of ref during at_time. **/
int read_ref_at(const char *refname, unsigned int flags,
timestamp_t at_time, int cnt,
- unsigned char *sha1, char **msg,
+ struct object_id *oid, char **msg,
timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt);
/** Check if a particular reflog exists */
diff --git a/sha1_name.c b/sha1_name.c
index 7de12743f3..f0ec3f0454 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -697,8 +697,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid,
return -1;
}
}
- if (read_ref_at(real_ref, flags, at_time, nth, oid->hash, NULL,
- &co_time, &co_tz, &co_cnt)) {
+ if (read_ref_at(real_ref, flags, at_time, nth, oid, NULL, &co_time, &co_tz, &co_cnt)) {
if (!len) {
if (starts_with(real_ref, "refs/heads/")) {
str = real_ref + 11;
--
2.14.2.822.g60be5d43e6
next prev parent reply other threads:[~2017-10-01 22:09 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-01 22:08 [PATCH 00/24] object_id part 10 brian m. carlson
2017-10-01 22:08 ` [PATCH 01/24] walker: convert to struct object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 02/24] refs/files-backend: convert struct ref_to_prune to object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 03/24] refs: convert delete_ref and refs_delete_ref to struct object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 04/24] refs: convert update_ref and refs_update_ref to use " brian m. carlson
2017-10-02 22:37 ` Stefan Beller
2017-10-03 1:23 ` brian m. carlson
2017-10-02 23:08 ` Brandon Williams
2017-10-01 22:08 ` [PATCH 05/24] refs: update ref transactions " brian m. carlson
2017-10-01 22:08 ` [PATCH 06/24] Convert check_connected " brian m. carlson
2017-10-02 23:00 ` Stefan Beller
2017-10-01 22:08 ` [PATCH 07/24] refs: convert resolve_refdup and refs_resolve_refdup to " brian m. carlson
2017-10-01 22:08 ` [PATCH 08/24] refs: convert read_ref and read_ref_full to object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 09/24] refs: convert dwim_ref and expand_ref to struct object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 10/24] builtin/reflog: convert remaining unsigned char uses to object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 11/24] refs: convert dwim_log to struct object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 12/24] pack-bitmap: convert traverse_bitmap_commit_list to object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 13/24] builtin/pack-objects: convert to struct object_id brian m. carlson
2017-10-02 23:20 ` Stefan Beller
2017-10-01 22:08 ` [PATCH 14/24] refs: convert peel_ref " brian m. carlson
2017-10-01 22:08 ` brian m. carlson [this message]
2017-10-02 23:26 ` [PATCH 15/24] refs: convert read_ref_at " Brandon Williams
2017-10-01 22:08 ` [PATCH 16/24] refs: convert reflog_expire parameter " brian m. carlson
2017-10-01 22:08 ` [PATCH 17/24] sha1_file: convert index_path and index_fd " brian m. carlson
2017-10-01 22:08 ` [PATCH 18/24] Convert remaining callers of resolve_gitlink_ref to object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 19/24] refs: convert resolve_gitlink_ref to struct object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 20/24] worktree: convert struct worktree to object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 21/24] refs: convert resolve_ref_unsafe to struct object_id brian m. carlson
2017-10-01 22:08 ` [PATCH 22/24] refs: convert peel_object " brian m. carlson
2017-10-01 22:08 ` [PATCH 23/24] refs: convert read_raw_ref backends " brian m. carlson
2017-10-01 22:08 ` [PATCH 24/24] refs/files-backend: convert static functions to object_id brian m. carlson
2017-10-02 23:34 ` [PATCH 00/24] object_id part 10 Brandon Williams
2017-10-02 23:34 ` Stefan Beller
2017-10-03 1:43 ` brian m. carlson
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171001220831.214705-16-sandals@crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=bmwill@google.com \
--cc=git@vger.kernel.org \
--cc=mhagger@alum.mit.edu \
--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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).