]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'jk/reflog-walk-maint' into jk/reflog-walk
authorJunio C Hamano <gitster@pobox.com>
Fri, 7 Jul 2017 17:02:42 +0000 (10:02 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 7 Jul 2017 17:02:42 +0000 (10:02 -0700)
* jk/reflog-walk-maint:
  reflog-walk: include all fields when freeing complete_reflogs
  reflog-walk: don't free reflogs added to cache
  reflog-walk: duplicate strings in complete_reflogs list
  reflog-walk: skip over double-null oid due to HEAD rename

1  2 
reflog-walk.c

diff --cc reflog-walk.c
index ed99437ad2068a75d14e739354e1bc17932fd839,ba72020fc349d4ea9f9366ced9af43372980e988..081f89b70d643514f148aaff9121263361fdb956
@@@ -252,13 -259,15 +259,15 @@@ void fake_reflog_parent(struct reflog_w
        do {
                reflog = &commit_reflog->reflogs->items[commit_reflog->recno];
                commit_reflog->recno--;
 -              logobj = parse_object(reflog->ooid.hash);
 +              logobj = parse_object(&reflog->ooid);
        } while (commit_reflog->recno && (logobj && logobj->type != OBJ_COMMIT));
  
 -      if (!logobj && commit_reflog->recno >= 0 && is_null_sha1(reflog->ooid.hash)) {
 +      if (!logobj && commit_reflog->recno >= 0 && is_null_oid(&reflog->ooid)) {
                /* a root commit, but there are still more entries to show */
                reflog = &commit_reflog->reflogs->items[commit_reflog->recno];
 -              logobj = parse_object(reflog->noid.hash);
 +              logobj = parse_object(&reflog->noid);
+               if (!logobj)
 -                      logobj = parse_object(reflog->ooid.hash);
++                      logobj = parse_object(&reflog->ooid);
        }
  
        if (!logobj || logobj->type != OBJ_COMMIT) {