[前][次][番号順一覧][スレッド一覧]

ruby-changes:16039

From: nobu <ko1@a...>
Date: Mon, 24 May 2010 15:10:14 +0900 (JST)
Subject: [ruby-changes:16039] Ruby:r27988 (trunk): * tool/change_maker.rb: use external diff for -p option.

nobu	2010-05-24 15:10:09 +0900 (Mon, 24 May 2010)

  New Revision: 27988

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27988

  Log:
    * tool/change_maker.rb: use external diff for -p option.

  Modified files:
    trunk/tool/change_maker.rb

Index: tool/change_maker.rb
===================================================================
--- tool/change_maker.rb	(revision 27987)
+++ tool/change_maker.rb	(revision 27988)
@@ -1,26 +1,29 @@
 #! ./miniruby
 
-if File.directory?(".svn")
-  cmd = "svn diff"
-elsif File.directory?(".git")
-  cmd = "git diff"
-else
-  abort "does not seem to be under a vcs"
-end
-
 def diff2index(cmd, *argv)
+  lines = []
   path = nil
   `#{cmd} #{argv.join(" ")}`.split(/\n/).each do |line|
     case line
     when /^Index: (\S*)/, /^diff --git [a-z]\/(\S*) [a-z]\/\1/
       path = $1
-    when /^@@.*@@ +([A-Za-z_][A-Za-z_0-9 ]*[A-Za-z_0-9])/
-      puts "* #{path} (#{$1}):"
+    when /^@@\s*-\d+,\d+ +\+(\d+),\d+\s*@@(?: +([A-Za-z_][A-Za-z_0-9 ]*[A-Za-z_0-9]))?/
+      line = $1.to_i
+      ent = "* #{path}"
+      ent << " (#{$2})" if $2
+      lines << "#{ent}:"
     end
   end
-  !!path
+  lines.uniq!
+  lines.empty? ? nil : lines
 end
 
-if !diff2index(cmd, ARGV) and /^git/ =~ cmd
-  diff2index(cmd, "--cached", ARGV)
+if File.directory?(".svn")
+  cmd = "svn diff --diff-cmd=diff -x-pU0"
+  puts diff2index(cmd, ARGV)
+elsif File.directory?(".git")
+  cmd = "git diff"
+  puts diff2index(cmd, ARGV) || diff2index(cmd, "--cached", ARGV)
+else
+  abort "does not seem to be under a vcs"
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]