[PATCH] Add -O<orderfile> option to diff-* brothers.
A new diffcore filter diffcore-order is introduced. This takes
a text file each of whose line is a shell glob pattern. Patches
that match a glob pattern on an earlier line in the file are
output before patches that match a later line, and patches that
do not match any glob pattern are output last.
A typical orderfile for git project probably should look like
this:
README
Makefile
Documentation
*.h
*.c
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff --git a/diff-files.c b/diff-files.c
index b840b35..f3a79e5 100644
--- a/diff-files.c
+++ b/diff-files.c
@@ -16,6 +16,7 @@
static const char *pickaxe = NULL;
static int pickaxe_opts = 0;
static int diff_break_opt = -1;
+static const char *orderfile = NULL;
static int silent = 0;
static void show_unmerge(const char *path)
@@ -56,6 +57,8 @@
diff_setup_opt |= DIFF_SETUP_REVERSE;
else if (!strncmp(argv[1], "-S", 2))
pickaxe = argv[1] + 2;
+ else if (!strncmp(argv[1], "-O", 2))
+ orderfile = argv[1] + 2;
else if (!strcmp(argv[1], "--pickaxe-all"))
pickaxe_opts = DIFF_PICKAXE_ALL;
else if (!strncmp(argv[1], "-B", 2))
@@ -122,7 +125,8 @@
diffcore_std((1 < argc) ? argv + 1 : NULL,
detect_rename, diff_score_opt,
pickaxe, pickaxe_opts,
- diff_break_opt);
+ diff_break_opt,
+ orderfile);
diff_flush(diff_output_format, 1);
return 0;
}