From 24663f1f6d709daf8913484914ed01af9f7a480a Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Fri, 29 May 2020 11:29:25 +0200 Subject: [PATCH] Fix various limitations of git-backport.py. I've just tested the script and I'm going to install the patch to all active branches. contrib/ChangeLog: * git-backport.py: The script did 'git co HEAD~' when there was no modified ChangeLog file in a successful git cherry pick. Run cherry-pick --continue without editor. --- contrib/git-backport.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/contrib/git-backport.py b/contrib/git-backport.py index 6a115c34d40..3a9413dcd27 100755 --- a/contrib/git-backport.py +++ b/contrib/git-backport.py @@ -30,9 +30,13 @@ if __name__ == '__main__': r = subprocess.run('git cherry-pick -x %s' % args.revision, shell=True) if r.returncode == 0: - cmd = 'git show --name-only --pretty="" -- "*ChangeLog" |' \ - 'xargs git checkout HEAD~' - subprocess.check_output(cmd, shell=True) + 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 @@ -55,6 +59,7 @@ if __name__ == '__main__': # try to continue if len(conflicts) == len(changelogs): - subprocess.check_output('git cherry-pick --continue', shell=True) + cmd = 'git -c core.editor=true cherry-pick --continue' + subprocess.check_output(cmd, shell=True) else: print('Please resolve all remaining file conflicts.') -- 2.30.2