pub fn peel_rel<G>(graph: &G, node: NodeId) -> Result<Option<NodeId>>Expand description
Recursively peel a Release node, following its target, until a node of a different type is reached.
A release is peeled by following its target, i.e. its first successor of any kind (see
peel_once); chains of releases (e.g. an annotated tag pointing to another tag) are followed
transitively. A non-release node is returned unchanged.
Unlike peel and peel_once, this only deals with release nodes and therefore needs
narrower trait bounds: in particular it does not need the LabelNames
property, since (unlike snapshot peeling) it never has to resolve a HEAD branch by name.
Returns Ok(Some(node_id)) on success, where node_id is the (non-release) peel result, or
Ok(None) if a release with no successor is reached (a dangling target).