refs: convert read_ref_at to struct object_id
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b420d90980
commit
8eb36d9422
@ -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,7 +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,
|
||||
if (read_ref_at(ref, flags, 0, base + i, &oid, &logmsg,
|
||||
×tamp, &tz, NULL)) {
|
||||
reflog = i;
|
||||
break;
|
||||
|
34
refs.c
34
refs.c
@ -738,11 +738,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;
|
||||
@ -774,25 +774,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;
|
||||
@ -812,15 +812,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;
|
||||
@ -833,7 +833,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);
|
||||
|
||||
|
2
refs.h
2
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 */
|
||||
|
@ -697,7 +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,
|
||||
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/")) {
|
||||
|
Loading…
Reference in New Issue
Block a user