From b5effa1f24a7f909997800559edbc53e5ba08fbf Mon Sep 17 00:00:00 2001 From: Andrii Shyshkalov Date: Wed, 14 Dec 2016 19:35:12 +0100 Subject: [PATCH] git cl + git numberer: fix 3+ lineage ordering. In other words, end 2 end test was a really awesome idea. R=machenbach@chromium.org,sergiyb@chromium.org BUG=642493 TEST=git cl land of https://codereview.chromium.org/2575043003 succeeded Change-Id: I568ce79baf109b2aa556e4343527b63f39c10d00 Reviewed-on: https://chromium-review.googlesource.com/419478 Commit-Queue: Andrii Shyshkalov Reviewed-by: Aaron Gable --- git_cl.py | 2 +- tests/git_cl_test.py | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/git_cl.py b/git_cl.py index c13d6a638f..8a2a8a1f6a 100755 --- a/git_cl.py +++ b/git_cl.py @@ -3333,7 +3333,7 @@ class ChangeDescription(object): parsed_footers[i] = (k.replace('Cr-', 'Cr-Original-'), v) # Add Position and Lineage footers based on the parent. - lineage = parent_footer_map.get('Cr-Branched-From', []) + lineage = list(reversed(parent_footer_map.get('Cr-Branched-From', []))) if parent_position[0] == dest_ref: # Same branch as parent. number = int(parent_position[1]) + 1 diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py index 71f3ed6d22..3bc4e7f795 100755 --- a/tests/git_cl_test.py +++ b/tests/git_cl_test.py @@ -387,6 +387,32 @@ class TestGitClBasic(unittest.TestCase): 'Cr-Branched-From: parenthash-refs/heads/branch@{#5}\n' 'Cr-Branched-From: somehash-refs/heads/master@{#12}') + def test_git_number_ever_moooooooore_lineage(self): + self.maxDiff = 10000 + actual = self._test_git_number( + 'CQ commit on fresh new branch + numbering.\n' + '\n' + 'NOTRY=True\n' + 'NOPRESUBMIT=True\n' + 'BUG=\n' + '\n' + 'Review-Url: https://codereview.chromium.org/2577703003\n' + 'Cr-Commit-Position: refs/heads/gnumb-test/br@{#1}\n' + 'Cr-Branched-From: 0749ff9edc-refs/heads/gnumb-test/cq@{#4}\n' + 'Cr-Branched-From: 5c49df2da6-refs/heads/master@{#41618}', + dest_ref='refs/heads/gnumb-test/cl', + child_msg='git cl on fresh new branch + numbering.\n' + '\n' + 'Review-Url: https://codereview.chromium.org/2575043003 .\n') + self.assertEqualByLine( + actual, + 'git cl on fresh new branch + numbering.\n' + '\n' + 'Review-Url: https://codereview.chromium.org/2575043003 .\n' + 'Cr-Commit-Position: refs/heads/gnumb-test/cl@{#1}\n' + 'Cr-Branched-From: parenthash-refs/heads/gnumb-test/br@{#1}\n' + 'Cr-Branched-From: 0749ff9edc-refs/heads/gnumb-test/cq@{#4}\n' + 'Cr-Branched-From: 5c49df2da6-refs/heads/master@{#41618}') def test_git_number_cherry_pick(self): actual = self._test_git_number(