OSDN Git Service

build: repopick: Support projects with less than 10 commits
authorAdrian DC <radian.dc@gmail.com>
Thu, 8 Sep 2016 15:11:11 +0000 (17:11 +0200)
committerGerrit Code Review <gerrit@cyanogenmod.org>
Sun, 11 Sep 2016 06:40:03 +0000 (23:40 -0700)
 * Verify that the project has at least 10 commits to verify,
    if not check only the amount of existing commits

Change-Id: Ic95212510d8f5b980c9a94af8d5ac1e0dfd94b3e

tools/repopick.py

index 2b436ef..8031a6a 100755 (executable)
@@ -319,9 +319,15 @@ if __name__ == '__main__':
         if args.start_branch:
             subprocess.check_output(['repo', 'start', args.start_branch[0], project_path])
 
-        # Check if change is already picked to HEAD...HEAD~10
+        # Determine the maximum commits to check already picked changes
+        check_picked_count = 10
+        branch_commits_count = int(subprocess.check_output(['git', 'rev-list', '--count', 'HEAD'], cwd=project_path))
+        if branch_commits_count <= check_picked_count:
+            check_picked_count = branch_commits_count - 1
+
+        # Check if change is already picked to HEAD...HEAD~check_picked_count
         found_change = False
-        for i in range(0, 10):
+        for i in range(0, check_picked_count):
             output = subprocess.check_output(['git', 'show', '-q', 'HEAD~{0}'.format(i)], cwd=project_path).split()
             if 'Change-Id:' in output:
                 head_change_id = output[output.index('Change-Id:')+1]