Add recursive landing support
Review Request #7330 — Created May 22, 2015 and submitted — Latest diff uploaded
The
rbt land
command can now land review requests recursively; that
is, it can now land all the unlanded review requests in the same
repository that the review request depends on. It also does this in
the correct order so that they should apply successfully.This is accomplished by building a dependency graph of the review
request and generating a topological sorting of this graph. The
reversed topological sorting yields a correct order for landing the
dependant review requests. This is because the relationship that
determines what to land first is blocking. A reversed topological
sorting of the dependency graph is a valid topological sorting of the
blocking graph (as the blocking graph is the transpose graph of the
dependency graph).Graph utilities have been added in
rbtools.utils.graphs
for
traversing a graph in depth-first order, generating a topological
sort, and determining if a path exists between two vertices in a
graph.
Succesfully landed https://reviews.reviewboard.org/r/7323 and all of
its dependencies recursively.