From b6e7e903a09e1577adc2f17600ca40dee80a0534 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Mon, 2 Sep 2024 02:25:28 -0700 Subject: [PATCH] redmine-backporter: Support matching multiple revs with `done` command --- tool/redmine-backporter.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tool/redmine-backporter.rb b/tool/redmine-backporter.rb index 475054641b..7f08eb8d1a 100755 --- a/tool/redmine-backporter.rb +++ b/tool/redmine-backporter.rb @@ -353,14 +353,14 @@ eom if rev && has_commit(rev, "ruby_#{TARGET_VERSION.tr('.','_')}") notes = "ruby_#{TARGET_VERSION.tr('.','_')} commit:#{rev}." - elsif rev.nil? && (log = find_git_log("##@issue]")) && /^commit (?\h{40})$/ =~ log - str = log[/merge revision\(s\) ([^:]+)(?=:)/] - if str - str.sub!(/\Amerge/, 'merged') - str.gsub!(/\h{8,40}/, 'commit:\0') - str = "ruby_#{TARGET_VERSION.tr('.','_')} commit:#{rev} #{str}." + elsif rev.nil? && (log = find_git_log("##@issue]")) && !(revs = log.scan(/^commit (\h{40})$/).flatten).empty? + commits = revs.map { |rev| "commit:#{rev}" }.join(", ") + if merged_revs = log[/merge revision\(s\) ([^:]+)(?=:)/] + merged_revs.sub!(/\Amerge/, 'merged') + merged_revs.gsub!(/\h{8,40}/, 'commit:\0') + str = "ruby_#{TARGET_VERSION.tr('.','_')} #{commits} #{merged_revs}." else - str = "ruby_#{TARGET_VERSION.tr('.','_')} commit:#{rev}." + str = "ruby_#{TARGET_VERSION.tr('.','_')} #{commits}." end if notes str << "\n"