forked from mirrors/jj
revsets: Add descendants_at
and ancestors_at
They are needed for `next` and `prev`. They behave symmetrically for parents and children.
This commit is contained in:
parent
57f46a4bb7
commit
8dda7e21e0
1 changed files with 18 additions and 0 deletions
|
@ -444,6 +444,15 @@ impl RevsetExpression {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Ancestors of `self`, including `self` until `generation` back.
|
||||||
|
pub fn ancestors_at(self: &Rc<RevsetExpression>, generation: u64) -> Rc<RevsetExpression> {
|
||||||
|
Rc::new(RevsetExpression::Ancestors {
|
||||||
|
heads: self.clone(),
|
||||||
|
generation: generation..(generation + 1),
|
||||||
|
is_legacy: false,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/// Children of `self`.
|
/// Children of `self`.
|
||||||
pub fn children(self: &Rc<RevsetExpression>) -> Rc<RevsetExpression> {
|
pub fn children(self: &Rc<RevsetExpression>) -> Rc<RevsetExpression> {
|
||||||
Rc::new(RevsetExpression::Descendants {
|
Rc::new(RevsetExpression::Descendants {
|
||||||
|
@ -469,6 +478,15 @@ impl RevsetExpression {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Descendants of `self`, including `self` until `generation` ahead.
|
||||||
|
pub fn descendants_at(self: &Rc<RevsetExpression>, generation: u64) -> Rc<RevsetExpression> {
|
||||||
|
Rc::new(RevsetExpression::Descendants {
|
||||||
|
roots: self.clone(),
|
||||||
|
generation: generation..(generation + 1),
|
||||||
|
is_legacy: false,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/// Commits that are descendants of `self` and ancestors of `heads`, both
|
/// Commits that are descendants of `self` and ancestors of `heads`, both
|
||||||
/// inclusive.
|
/// inclusive.
|
||||||
pub fn dag_range_to(
|
pub fn dag_range_to(
|
||||||
|
|
Loading…
Reference in a new issue