File tree 3 files changed +32
-6
lines changed 3 files changed +32
-6
lines changed Original file line number Diff line number Diff line change @@ -90,23 +90,26 @@ impl<'a> visit::Changes<'a> {
90
90
delete_entry_schedule_recursion ( lhs, & mut state. trees , delegate) ?;
91
91
' inner_less: loop {
92
92
match lhs_entries. next ( ) . transpose ( ) ? {
93
- Some ( lhs) => {
94
- if lhs . filename == rhs . filename {
93
+ Some ( lhs) => match lhs . filename . cmp ( rhs . filename ) {
94
+ Equal => {
95
95
handle_lhs_and_rhs_with_equal_filenames (
96
96
lhs,
97
97
rhs,
98
98
& mut state. trees ,
99
99
delegate,
100
100
) ?;
101
101
break ' inner_less;
102
- } else {
102
+ }
103
+ Less => {
103
104
delegate. pop_path_component ( ) ;
104
105
delete_entry_schedule_recursion ( lhs, & mut state. trees , delegate) ?;
105
106
}
106
- }
107
+ Greater => {
108
+ todo ! ( "LESS -> GREATER - we overshot" )
109
+ }
110
+ } ,
107
111
None => {
108
- todo ! ( "LESS: catchup less: break inner depleted - it never caught up" ) ;
109
- // break 'inner;
112
+ break ' inner_less;
110
113
}
111
114
}
112
115
}
Original file line number Diff line number Diff line change @@ -69,3 +69,8 @@ git commit -qam 'add g/a'
69
69
70
70
git rm c d e
71
71
git commit -qam ' remove /c /d /e'
72
+
73
+ git rm f
74
+ touch ff
75
+ git add ff
76
+ git commit -qam ' rm /f, add /ff'
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ mod changes {
16
16
const COMMIT_14 : & str = "ac7c4c37c3939b820f3ff9003a7ed11d6143dc2b" ;
17
17
const COMMIT_15 : & str = "6112ecdac98a18bcbdbd83f0b180b3e1df12e293" ;
18
18
const COMMIT_16 : & str = "0ca25edc0c0b38fd6b6a0f6e4797dc08bf0c55c2" ;
19
+ const COMMIT_17 : & str = "0b93c2b59feb6c9a4efa1c78a4b4b17fd1c78508" ;
19
20
20
21
fn db ( ) -> crate :: Result < linked:: Db > {
21
22
linked:: Db :: at (
@@ -281,6 +282,23 @@ mod changes {
281
282
:100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D d
282
283
:100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D e"
283
284
) ;
285
+ assert_eq ! (
286
+ diff_with_previous_commit_from( & db, COMMIT_17 ) ?,
287
+ vec![
288
+ recorder:: Change :: Deletion {
289
+ entry_mode: EntryMode :: Blob ,
290
+ oid: hex_to_id( "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391" ) ,
291
+ path: "f" . into( )
292
+ } ,
293
+ recorder:: Change :: Addition {
294
+ entry_mode: EntryMode :: Blob ,
295
+ oid: hex_to_id( "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391" ) ,
296
+ path: "ff" . into( )
297
+ } ,
298
+ ] ,
299
+ ":100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D f
300
+ :000000 100644 0000000000000000000000000000000000000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 A ff"
301
+ ) ;
284
302
Ok ( ( ) )
285
303
}
286
304
}
You can’t perform that action at this time.
0 commit comments