fix: simplify revision diff selection into a flat list
Revisions still used ancestry lanes and placed author/date/bookmark metadata before the summary. Show short change IDs and summaries first, move metadata to a dimmed detail row, and remove the obsolete picker graph projection.
This commit is contained in:
@@ -1688,75 +1688,6 @@ fn graph_state() -> DiffState {
|
||||
state
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn picker_graph_preserves_forks_merges_and_marks_filtered_ancestry() {
|
||||
let mut state = graph_state();
|
||||
let graph = state.picker_graph();
|
||||
assert_eq!(graph.len(), 5);
|
||||
assert_eq!(graph["merge"][1].trim_end(), "├─┐");
|
||||
assert_eq!(graph["right"][1].trim_end(), "├─┘");
|
||||
assert!(!graph.values().flatten().any(|prefix| prefix.contains('~')));
|
||||
state.category = 1;
|
||||
state.refilter();
|
||||
assert_eq!(state.entries().len(), 3);
|
||||
assert_eq!(
|
||||
state
|
||||
.graph_revision(state.entries().nth(1).unwrap())
|
||||
.unwrap()
|
||||
.0,
|
||||
"merge"
|
||||
);
|
||||
assert!(matches!(
|
||||
state.entries().nth(1).unwrap().target,
|
||||
RevisionTarget::Bookmark { .. }
|
||||
));
|
||||
state.category = 0;
|
||||
state.query = "left root".into();
|
||||
state.refilter();
|
||||
assert!(state.picker_graph().is_empty());
|
||||
assert_eq!(state.entries().len(), 1);
|
||||
state.before = Some(state.catalog.as_ref().unwrap().entries[1].clone());
|
||||
state.query = "right".into();
|
||||
state.refilter();
|
||||
assert_eq!(state.picker_graph().len(), 2);
|
||||
assert!(state.picker_graph()["merge"][1].contains('~'));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn graph_crossings_do_not_join_unrelated_ancestry() {
|
||||
let mut state = DiffState::new();
|
||||
let mut catalog = Catalog {
|
||||
kind: RepoKind::Jujutsu,
|
||||
entries: Vec::new(),
|
||||
graph: Default::default(),
|
||||
notice: None,
|
||||
};
|
||||
for (id, parents) in [
|
||||
("a", vec!["x"]),
|
||||
("b", vec!["y"]),
|
||||
("merge", vec!["x", "z"]),
|
||||
("x", vec![]),
|
||||
("y", vec![]),
|
||||
("z", vec![]),
|
||||
] {
|
||||
catalog.entries.push(revision(
|
||||
RevisionTarget::Commit(id.into()),
|
||||
id,
|
||||
"",
|
||||
Category::Revisions,
|
||||
));
|
||||
catalog.graph.insert(
|
||||
id.into(),
|
||||
RevisionGraph {
|
||||
parents: parents.into_iter().map(String::from).collect(),
|
||||
..Default::default()
|
||||
},
|
||||
);
|
||||
}
|
||||
state.apply_result(1, Ok(Outcome::Catalog(catalog)));
|
||||
assert_eq!(state.picker_graph()["merge"][1].trim_end(), "├─╪─┤");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn before_identity_survives_query_and_category_without_duplicate_graph_nodes() {
|
||||
let mut state = graph_state();
|
||||
|
||||
Reference in New Issue
Block a user