Jiang Xin [off-list ref] writes:
Therefore, before calling `prepare_revision_walk()` function, make a
copy on `revs.pending` for later use.
The in-core objects pointed by the list elements are shared between
the original and the copy, and the object flag bits that are used to
control the traversal (like SEEN, SHOWN and BOUNDARY bits) would be
smudged during the traversal. So depending on how the "later use"
uses the copied list, it may or may not be sufficient to just copy
the list.
Apparently, you've tested the updated code well enough to send to
the list, so it must be sufficient to make a copy of the list to
support the way the updated code uses it, but it is not clear how it
is so, only from what is in the proposed log message.