Skip to content

Commit 1bfa9da

Browse files
committed
[tree-diff] another green test
1 parent 9ca57fa commit 1bfa9da

File tree

3 files changed

+33
-2
lines changed

3 files changed

+33
-2
lines changed

git-diff/src/visit/changes.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,9 @@ impl<'a> visit::Changes<'a> {
120120
},
121121
Some(Err(err)) => return Err(Error::EntriesDecode(err.to_owned())),
122122
None => {
123-
todo!("LESS: depleted lhs");
124-
// break 'inner_less;
123+
delegate.pop_path_component();
124+
add_entry_schedule_recursion(rhs, &mut state.trees, delegate)?;
125+
break 'inner_less;
125126
}
126127
}
127128
}

git-diff/tests/fixtures/make_diff_repo.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,8 @@ git rm f
7474
touch ff
7575
git add ff
7676
git commit -qam 'rm /f, add /ff'
77+
78+
touch g/aa
79+
git rm g/a
80+
git add g/aa
81+
git commit -qam 'rm g/a, add g/aa'

git-diff/tests/visit/mod.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ mod changes {
1717
const COMMIT_15: &str = "6112ecdac98a18bcbdbd83f0b180b3e1df12e293";
1818
const COMMIT_16: &str = "0ca25edc0c0b38fd6b6a0f6e4797dc08bf0c55c2";
1919
const COMMIT_17: &str = "0b93c2b59feb6c9a4efa1c78a4b4b17fd1c78508";
20+
const COMMIT_18: &str = "53e18fb0d3296990f05382f9c67f8bd256126c4c";
2021

2122
fn db() -> crate::Result<linked::Db> {
2223
linked::Db::at(
@@ -299,6 +300,30 @@ mod changes {
299300
":100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D f
300301
:000000 100644 0000000000000000000000000000000000000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 A ff"
301302
);
303+
assert_eq!(
304+
diff_with_previous_commit_from(&db, COMMIT_18)?,
305+
vec![
306+
recorder::Change::Modification {
307+
previous_entry_mode: EntryMode::Tree,
308+
previous_oid: hex_to_id("496d6428b9cf92981dc9495211e6e1120fb6f2ba"),
309+
entry_mode: EntryMode::Tree,
310+
oid: hex_to_id("6e5931346904b020301f74f581142826eacc4678"),
311+
path: "g".into()
312+
},
313+
recorder::Change::Deletion {
314+
entry_mode: EntryMode::Blob,
315+
oid: hex_to_id("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"),
316+
path: "g/a".into()
317+
},
318+
recorder::Change::Addition {
319+
entry_mode: EntryMode::Blob,
320+
oid: hex_to_id("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"),
321+
path: "g/aa".into()
322+
},
323+
],
324+
":100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D g/a
325+
:000000 100644 0000000000000000000000000000000000000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 A g/aa"
326+
);
302327
Ok(())
303328
}
304329
}

0 commit comments

Comments
 (0)