diff options
author | Martin Liska <mliska@suse.cz> | 2022-01-13 11:45:46 +0100 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2022-01-13 11:49:36 +0100 |
commit | db0d23722e8b8daa54203f537729f578f3809c15 (patch) | |
tree | 9d523ec667ac4b6db31033d6ae652f12d803cc45 /contrib | |
parent | 9fcc3a1dd2372deea8856c55d25337b06e201203 (diff) | |
download | gcc-db0d23722e8b8daa54203f537729f578f3809c15.zip gcc-db0d23722e8b8daa54203f537729f578f3809c15.tar.gz gcc-db0d23722e8b8daa54203f537729f578f3809c15.tar.bz2 |
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.
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/git-backport.py | 39 |
1 files 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) |