File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed
Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -213,6 +213,31 @@ static int show_modified(struct rev_info *revs,
213213 return -1 ;
214214 }
215215
216+ if (revs -> combine_merges && !cached &&
217+ (hashcmp (sha1 , old -> sha1 ) || hashcmp (old -> sha1 , new -> sha1 ))) {
218+ struct combine_diff_path * p ;
219+ int pathlen = ce_namelen (new );
220+
221+ p = xmalloc (combine_diff_path_size (2 , pathlen ));
222+ p -> path = (char * ) & p -> parent [2 ];
223+ p -> next = NULL ;
224+ p -> len = pathlen ;
225+ memcpy (p -> path , new -> name , pathlen );
226+ p -> path [pathlen ] = 0 ;
227+ p -> mode = ntohl (mode );
228+ hashclr (p -> sha1 );
229+ memset (p -> parent , 0 , 2 * sizeof (struct combine_diff_parent ));
230+ p -> parent [0 ].status = DIFF_STATUS_MODIFIED ;
231+ p -> parent [0 ].mode = ntohl (new -> ce_mode );
232+ hashcpy (p -> parent [0 ].sha1 , new -> sha1 );
233+ p -> parent [1 ].status = DIFF_STATUS_MODIFIED ;
234+ p -> parent [1 ].mode = ntohl (old -> ce_mode );
235+ hashcpy (p -> parent [1 ].sha1 , old -> sha1 );
236+ show_combined_diff (p , 2 , revs -> dense_combined_merges , revs );
237+ free (p );
238+ return 0 ;
239+ }
240+
216241 oldmode = old -> ce_mode ;
217242 if (mode == oldmode && !hashcmp (sha1 , old -> sha1 ) &&
218243 !revs -> diffopt .find_copies_harder )
You can’t perform that action at this time.
0 commit comments