needs_update(): Split to recurse_deps() and branch_needs_update() helpers