From db0d23722e8b8daa54203f537729f578f3809c15 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Thu, 13 Jan 2022 11:45:46 +0100 Subject: [PATCH] Simplify git-backport.py script. It's very unlikely that somebody is going to backport a revision that is > 14 months old to a release branch. contrib/ChangeLog: * git-backport.py: Simplify the script as pre-auto-ChangeLog era is 14 months old. --- contrib/git-backport.py | 39 ++------------------------------------- 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/contrib/git-backport.py b/contrib/git-backport.py index 2b8e468..bc2907a 100755 --- a/contrib/git-backport.py +++ b/contrib/git-backport.py @@ -23,43 +23,8 @@ import argparse import subprocess if __name__ == '__main__': - parser = argparse.ArgumentParser(description='Backport a git revision and ' - 'stash all ChangeLog files.') + parser = argparse.ArgumentParser(description='Backport a git revision.') parser.add_argument('revision', help='Revision') args = parser.parse_args() - r = subprocess.run('git cherry-pick -x %s' % args.revision, shell=True) - if r.returncode == 0: - cmd = 'git show --name-only --pretty="" -- "*ChangeLog"' - changelogs = subprocess.check_output(cmd, shell=True, encoding='utf8') - changelogs = changelogs.strip() - if changelogs: - for changelog in changelogs.split('\n'): - subprocess.check_output('git checkout HEAD~ %s' % changelog, - shell=True) - subprocess.check_output('git commit --amend --no-edit', shell=True) - else: - # 1) remove all ChangeLog files from conflicts - out = subprocess.check_output('git diff --name-only --diff-filter=U', - shell=True, - encoding='utf8') - conflicts = out.strip().split('\n') - changelogs = [c for c in conflicts if c.endswith('ChangeLog')] - if changelogs: - cmd = 'git checkout --theirs %s' % ' '.join(changelogs) - subprocess.check_output(cmd, shell=True) - # 2) remove all ChangeLog files from index - cmd = 'git diff --name-only --diff-filter=M HEAD' - out = subprocess.check_output(cmd, shell=True, encoding='utf8') - out = out.strip().split('\n') - modified = [c for c in out if c.endswith('ChangeLog')] - for m in modified: - subprocess.check_output('git reset %s' % m, shell=True) - subprocess.check_output('git checkout %s' % m, shell=True) - - # try to continue - if len(conflicts) == len(changelogs): - cmd = 'git -c core.editor=true cherry-pick --continue' - subprocess.check_output(cmd, shell=True) - else: - print('Please resolve all remaining file conflicts.') + subprocess.run('git cherry-pick -x %s' % args.revision, shell=True) -- 2.7.4