X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=revision.c;h=75c648c13c6c50335ffc3e79f5d6303bea20104e;hb=9202434cbdfb123f41fc677bbf36ff21f6094fc8;hp=6a6952cd559af89d3c8dc2c477ddd8c25b470d66;hpb=bfbd0bb6ecbbbf75a5caaff6afaf5a6af8fa518e;p=git.git diff --git a/revision.c b/revision.c index 6a6952cd..75c648c1 100644 --- a/revision.c +++ b/revision.c @@ -303,7 +303,7 @@ static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit) parse_commit(p); switch (rev_compare_tree(revs, p->tree, commit->tree)) { case REV_TREE_SAME: - if (p->object.flags & UNINTERESTING) { + if (!revs->simplify_history || (p->object.flags & UNINTERESTING)) { /* Even if a merge with an uninteresting * side branch brought the entire change * we are interested in, we do not want @@ -519,6 +519,7 @@ void init_revisions(struct rev_info *revs) revs->abbrev = DEFAULT_ABBREV; revs->ignore_merges = 1; + revs->simplify_history = 1; revs->pruning.recursive = 1; revs->pruning.add_remove = file_add_remove; revs->pruning.change = file_change; @@ -756,6 +757,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch revs->full_diff = 1; continue; } + if (!strcmp(arg, "--full-history")) { + revs->simplify_history = 0; + continue; + } opts = diff_opt_parse(&revs->diffopt, argv+i, argc-i); if (opts > 0) { revs->diff = 1;