This only helps filtering out commits whose changes are _entirely_ filtered out. This does not affect patch generate (--patch, --stat and so on) Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- revision.c | 7 +++++-- revision.h | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/revision.c b/revision.c index c46cfaa..8472553 100644 --- a/revision.c +++ b/revision.c @@ -334,8 +334,8 @@ static int rev_compare_tree(struct rev_info *revs, struct commit *parent, struct tree_difference = REV_TREE_SAME; DIFF_OPT_CLR(&revs->pruning, HAS_CHANGES); - if (diff_tree_sha1(t1->object.sha1, t2->object.sha1, "", - &revs->pruning) < 0) + if (diff_tree_sha1_with_exclude(t1->object.sha1, t2->object.sha1, "", + &revs->pruning, &revs->el, 0, 0) < 0) return REV_TREE_DIFFERENT; return tree_difference; } @@ -1454,6 +1454,9 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg return argcount; } else if (!strcmp(arg, "--log-size")) { revs->show_log_size = 1; + } else if (!prefixcmp(arg, "--exclude=")) { + add_exclude(arg + 10, "", 0, &revs->el); + revs->prune = 1; } /* * Grepping the commit log diff --git a/revision.h b/revision.h index 3d64ada..3709959 100644 --- a/revision.h +++ b/revision.h @@ -4,6 +4,7 @@ #include "parse-options.h" #include "grep.h" #include "notes.h" +#include "dir.h" #define SEEN (1u<<0) #define UNINTERESTING (1u<<1) @@ -133,6 +134,7 @@ struct rev_info { /* diff info for patches and for paths limiting */ struct diff_options diffopt; struct diff_options pruning; + struct exclude_list el; struct reflog_walk_info *reflog_info; struct decoration children; -- 1.7.3.1.256.g2539c.dirty -- 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