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)
81
81
82
82
first = 0 ;
83
83
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
+
84
96
while (last > first ) {
85
97
int next = (last + first ) >> 1 ;
86
98
struct diff_rename_src * src = & (rename_src [next ]);
@@ -94,6 +106,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p)
94
106
first = next + 1 ;
95
107
}
96
108
109
+ append_it :
97
110
/* insert to make it at "first" */
98
111
ALLOC_GROW (rename_src , rename_src_nr + 1 , rename_src_alloc );
99
112
rename_src_nr ++ ;
You can’t perform that action at this time.
0 commit comments