Karthik Nayak <karthik.188@xxxxxxxxx> writes: > I'm thinking "--all-ref-types" might be a good alternative. Mostly because, > "--include-root-refs" seems very specific to the files backend. Also, we don't > include other refs which are not HEAD | pseudorefs, but in the $GIT_DIR. I strongly disagree wiht the "files backend specific" part of the comment. No matter what backend you would use, refs and pseudorefs have the full refname, which may look like "HEAD", "FETCH_HEAD", "refs/heads/maint", etc., and you can easily see these full refnames form a tree structure, with "HEAD", "FETCH_HEAD", "refs/" at the root level. I do not understand your "we don't include other refs", either. There may be "things" that are ignored by your implementation of "for-each-ref ''" even with the files backend in $GIT_DIR directory. They are not refs, because the refs are by definition inside "refs/" hierarchy, unless they are ones that are specifically included from outside the hierarchy ("pseudorefs" is one class of specific exception, "HEAD" is another).