mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 2dce743725
			
		
	
	
		2dce743725
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			768 B
		
	
	
	
		
			Ruby
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			768 B
		
	
	
	
		
			Ruby
		
	
	
		
			Executable file
		
	
	
	
	
| #! ./miniruby
 | |
| 
 | |
| 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 /^@@\s*-[,\d]+ +\+(\d+)[,\d]*\s*@@(?: +([A-Za-z_][A-Za-z_0-9 ]*[A-Za-z_0-9]))?/
 | |
|       line = $1.to_i
 | |
|       ent = "\t* #{path}"
 | |
|       ent << " (#{$2})" if $2
 | |
|       lines << "#{ent}:"
 | |
|     end
 | |
|   end
 | |
|   lines.uniq!
 | |
|   lines.empty? ? nil : lines
 | |
| end
 | |
| 
 | |
| if File.directory?(".svn")
 | |
|   cmd = "svn diff --diff-cmd=diff -x-pU0"
 | |
|   change = diff2index(cmd, ARGV)
 | |
| elsif File.directory?(".git")
 | |
|   cmd = "git diff -U0"
 | |
|   change = diff2index(cmd, ARGV) || diff2index(cmd, "--cached", ARGV)
 | |
| else
 | |
|   abort "does not seem to be under a vcs"
 | |
| end
 | |
| puts change if change
 |