Changes since v5: * added more tests (one OK, one for suboptimal work only, one for a bug fixed) * adjusted expected output for 'diff-index --detect-bulk-moves on a move including a subdir.', it is OK * include a better copy_dirname based on Johnathan's code * dropped the "Transfer special display of toplevel dir to display-time." patch posted earlier, I really think that was a bad idea. * include 2 more patches that deal with problems with moves of deep trees, separated for easier review, but which should be squashed into the main one ultimately Only relatively easy things are still on my immediate TODO list for this series: * unified diff informational output * memrchr() implementation for portability * cleanups (free allocated structures, split long funcs a bit more, better comments, etc) * audit remaining FIXME tags Finishing the "--hide" feature will be next. Yann Dirson (5): Introduce bulk-move detection in diffcore. Add testcases for the --detect-bulk-moves diffcore flag. [RFC] Handle the simpler case of a subdir invalidating bulk move. [RFC] Consider all parents of a file as candidates for bulk rename. [WIP] Allow hiding renames of individual files involved in a directory rename. diff-lib.c | 6 +- diff.c | 21 ++- diff.h | 6 + diffcore-rename.c | 376 +++++++++++++++++++++++++++++++++++++- diffcore.h | 2 + t/t4046-diff-rename-factorize.sh | 301 ++++++++++++++++++++++++++++++ tree-diff.c | 4 +- 7 files changed, 703 insertions(+), 13 deletions(-) create mode 100755 t/t4046-diff-rename-factorize.sh -- 1.7.2.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html