diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-13 03:37:24 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-13 03:37:24 +0000 |
commit | e41bd61822076275c337258ef53566ea18b70f87 (patch) | |
tree | c6fe81420610b6b17636fa89c6b5861f73f01eda /tool | |
parent | a5fdc9de347bc18243266c1c5c771bb4655dfc78 (diff) |
* tool/file2lastrev.rb (get_revisions): fixes problem with
svn on cygwin. [ruby-dev:37702].
Patch by Kouhei Sutou.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
-rw-r--r-- | tool/file2lastrev.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/tool/file2lastrev.rb b/tool/file2lastrev.rb index cacd76eb60..ea11304703 100644 --- a/tool/file2lastrev.rb +++ b/tool/file2lastrev.rb @@ -1,6 +1,5 @@ #!/usr/bin/env ruby -ENV['LANG'] = ENV['LC_ALL'] = ENV['LC_MESSAGES'] = 'C' ENV.delete('PWD') require 'optparse' @@ -17,18 +16,22 @@ def detect_vcs(path) raise VCSNotFoundError, "does not seem to be under a vcs" end +# return a pair of strings, the last revision and the last revision in which +# +path+ was modified. def get_revisions(path) vcs, path = detect_vcs(path) info = case vcs when :svn - `cd "#{SRCDIR}" && svn info "#{path}"` + info_xml = `cd "#{SRCDIR}" && svn info --xml "#{path}"` + _, last, _, changed, _ = info_xml.split(/revision="(\d+)"/) + return last, changed when :git_svn `cd "#{SRCDIR}" && git svn info "#{path}"` when :git git_log = `cd "#{SRCDIR}" && git log HEAD~1..HEAD "#{path}"` git_log =~ /git-svn-id: .*?@(\d+)/ - "Revision: #{$1}\nLast Changed Rev: #{$1}\n" + return $1, $1 end if /^Revision: (\d+)/ =~ info |