summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-15 15:37:06 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-15 15:37:06 +0000
commitab82062155bfa98216fafa120fe43ebbf34d043f (patch)
tree3113d8ef4f1c9fa437849f3bebeb0ba8f41e8846 /tool
parenta597ab25d7e6c9f2480359128c380efdf58e40a5 (diff)
merges r21486 from trunk into ruby_1_9_1.
* 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/branches/ruby_1_9_1@21547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
-rw-r--r--tool/file2lastrev.rb9
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