File tree Expand file tree Collapse file tree 1 file changed +13
-0
lines changed
Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -81,6 +81,18 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p)
8181
8282 first = 0 ;
8383 last = rename_src_nr ;
84+
85+ if (last > 0 ) {
86+ struct diff_rename_src * src = & (rename_src [last - 1 ]);
87+ int cmp = strcmp (one -> path , src -> p -> one -> path );
88+ if (!cmp )
89+ return src ;
90+ if (cmp > 0 ) {
91+ first = last ;
92+ goto append_it ;
93+ }
94+ }
95+
8496 while (last > first ) {
8597 int next = (last + first ) >> 1 ;
8698 struct diff_rename_src * src = & (rename_src [next ]);
@@ -94,6 +106,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p)
94106 first = next + 1 ;
95107 }
96108
109+ append_it :
97110 /* insert to make it at "first" */
98111 ALLOC_GROW (rename_src , rename_src_nr + 1 , rename_src_alloc );
99112 rename_src_nr ++ ;
You can’t perform that action at this time.
0 commit comments