diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2017-09-13 19:15:55 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-09-14 15:19:07 +0900 |
commit | 8738a8a4df9ee50112b5f5a757c58988166974d3 (patch) | |
tree | 2c7b060f1d6f7a7f0c6684c1e59e1adff9395433 /refs.c | |
parent | 5e00a6c873981f87165adfecf29ad0ecc2c2c5df (diff) | |
download | git-8738a8a4df9ee50112b5f5a757c58988166974d3.tar.gz |
ref_iterator: keep track of whether the iterator output is ordered
References are iterated over in order by refname, but reflogs are not.
Some consumers of reference iteration care about the difference. Teach
each `ref_iterator` to keep track of whether its output is ordered.
`overlay_ref_iterator` is one of the picky consumers. Add a sanity
check in `overlay_ref_iterator_begin()` to verify that its inputs are
ordered.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.c')
-rw-r--r-- | refs.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -1309,6 +1309,10 @@ struct ref_iterator *refs_ref_iterator_begin( if (trim) iter = prefix_ref_iterator_begin(iter, "", trim); + /* Sanity check for subclasses: */ + if (!iter->ordered) + BUG("reference iterator is not ordered"); + return iter; } |