From: Junio C Hamano Date: Thu, 09 Feb 2006 21:53:00 GMT Subject: Re: gitweb using "--cc"? Message-ID: <7voe1g8air.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <7v4q389rwi.fsf@assigned-by-dhcp.cox.net> Junio C Hamano writes: > Junio C Hamano writes: > >> So obviously it would show the final paths and would not talk >> about which different path from each parent contributed to the >> result, but otherwise it should not be broken too much. At >> least that was the way I intended.. > > Sorry, I am wrong again. That was the way how I planned to, but > I think I forgot to pass the diff-options from the caller to > diff_tree_combined_merge(), so it does not do renames/copies. > > Shouldn't be too hard to change it though... On top of your patch, it was quite easy ;-) After the "Evil merge" in your test script, I added these: for i in a b c d e f g h i j k l m n; do echo $i; done >d git-update-index --add d git commit -m 'Add d' git checkout other git merge fast HEAD master mv d e echo o >>e git-update-index --add --remove d e git commit -m 'Move-edit d to e' git checkout master git merge -s recursive 'Merge' HEAD other git diff-tree -M --cc HEAD diff --git a/combine-diff.c b/combine-diff.c index 15f369e..2a0ec10 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -829,7 +829,7 @@ const char *diff_tree_combined_merge(con struct combine_diff_path *p, *paths = NULL; int num_parent, i, num_paths; - diff_setup(&diffopts); + diffopts = *opt; diffopts.output_format = DIFF_FORMAT_NO_OUTPUT; diffopts.recursive = 1;