summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-12-19 03:17:37 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-12-19 03:17:37 +0000
commit92bfddff928a70f595c38da6779c2168179c3d6f (patch)
treec7b4e12d22439e0ac1a6ac7a0bec95403999af20 /tool
parent5590ec8a8ebfc68bbbaf98553b833afcf2185ea0 (diff)
vcs: --add-author-from
* tool/vcs.rb (VCS::GIT#commit): no --add-author-from option if author equals committer. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
-rw-r--r--tool/vcs.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/tool/vcs.rb b/tool/vcs.rb
index 6bb23039ff..c3a5b3a0f8 100644
--- a/tool/vcs.rb
+++ b/tool/vcs.rb
@@ -469,7 +469,17 @@ class VCS
def commit
rev = cmd_read(%W"#{COMMAND} svn info"+[STDERR=>[:child, :out]])[/^Last Changed Rev: (\d+)/, 1]
- ret = system(COMMAND, "svn", "dcommit", "--add-author-from")
+ com = cmd_read(%W"#{COMMAND} svn find-rev r#{rev}").chomp
+
+ # TODO: dcommit necessary commits only with --add-author-from
+ same = true
+ cmd_pipe([COMMAND, "log", "--format=%ae %ce", "#{com}..@"], "rb") do |r|
+ r.each do |l|
+ same &&= /^(\S+) +\1$/ =~ l
+ end
+ end
+ ret = system(COMMAND, "svn", "dcommit", *(["--add-author-from"] unless same))
+
if ret and rev
old = [cmd_read(%W"#{COMMAND} log -1 --format=%H").chomp]
old << cmd_read(%W"#{COMMAND} svn reset -r#{rev}")[/^r#{rev} = (\h+)/, 1]