From 7220bd79946526fb0a87900fe125e5322b519774 Mon Sep 17 00:00:00 2001 From: Darragh Bailey Date: Wed, 7 Dec 2016 15:17:57 +0000 Subject: [PATCH] Exclude some unnecessary merge commits from history Removing merge commits that do not contribute to the tree during listing, reduces the number of merge commits to be subsequently pruned. In future any remaining merges may indicate a problem, or be used to reduce conflict cases by preserving them should users be utilizing manual merges to resolve patch conflicts. Change-Id: I8118db5acace6cb5d3b056c3d2cdaf398026c84c --- git_upstream/lib/searchers.py | 7 +++++-- .../changes_merge_result_identical_on_both_sides.yaml | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git_upstream/lib/searchers.py b/git_upstream/lib/searchers.py index 31a9d9d..724cd56 100644 --- a/git_upstream/lib/searchers.py +++ b/git_upstream/lib/searchers.py @@ -205,14 +205,17 @@ class Searcher(GitMixin): else: search_list = [(self.branch, upstream, None)] rev_spec = "{0}...{1}" - git_args = {'cherry_pick': True, 'left_only': True} + git_args = {'cherry_pick': True, + 'left_only': True, + 'full_history': True, + } extra_args.append("^%s" % self.commit) for start, end, exclude in search_list: extra = list(extra_args) if exclude: extra.append(exclude) - extra.append("--") + extra.extend(["--", "."]) revision_spec = rev_spec.format(start, end) self.log.info( """ diff --git a/git_upstream/tests/searchers/scenarios/changes_merge_result_identical_on_both_sides.yaml b/git_upstream/tests/searchers/scenarios/changes_merge_result_identical_on_both_sides.yaml index 3c4cb1d..19764ec 100644 --- a/git_upstream/tests/searchers/scenarios/changes_merge_result_identical_on_both_sides.yaml +++ b/git_upstream/tests/searchers/scenarios/changes_merge_result_identical_on_both_sides.yaml @@ -50,4 +50,4 @@ head: [master, J] upstream: [upstream/master, L] - expected-changes: [D1, G1, H, I, J] + expected-changes: [D1, G1, I, J]