narrow: hoist a variable to a higher level to avoid use-before-init warning
In practice, this shouldn't generate an IOError, so there wouldn't have been a
problem. But PyCharm didn't know that.
Ancestors of 5
4 2 0
Ancestors of 6 and 5
4 3 2 1 0
Ancestors of 5 and 4
4 2 0
Ancestors of 7, stop at 6
6
Ancestors of 7, including revs
7 6 5 4 3 2 1 0
Ancestors of 7, 5 and 3, including revs
7 6 5 4 3 2 1 0
Descendants of 5
7 8
Descendants of 5 and 3
6 7 8
Descendants of 5 and 4
5 7 8