Merge branch 'jc/reflog' into lj/refs

* jc/reflog:
  sha1_name.c: avoid compilation warnings.
  ref-log: allow ref@{count} syntax.
This commit is contained in:
Junio C Hamano
2006-10-26 18:48:30 -07:00
3 changed files with 32 additions and 20 deletions

6
refs.c
View File

@ -806,7 +806,7 @@ int write_ref_sha1(struct ref_lock *lock,
return 0;
}
int read_ref_at(const char *ref, unsigned long at_time, unsigned char *sha1)
int read_ref_at(const char *ref, unsigned long at_time, int cnt, unsigned char *sha1)
{
const char *logfile, *logdata, *logend, *rec, *lastgt, *lastrec;
char *tz_c;
@ -839,7 +839,7 @@ int read_ref_at(const char *ref, unsigned long at_time, unsigned char *sha1)
if (!lastgt)
die("Log %s is corrupt.", logfile);
date = strtoul(lastgt + 1, &tz_c, 10);
if (date <= at_time) {
if (date <= at_time || cnt == 0) {
if (lastrec) {
if (get_sha1_hex(lastrec, logged_sha1))
die("Log %s is corrupt.", logfile);
@ -870,6 +870,8 @@ int read_ref_at(const char *ref, unsigned long at_time, unsigned char *sha1)
return 0;
}
lastrec = rec;
if (cnt > 0)
cnt--;
}
rec = logdata;