Commit bf1b1f6305849d8f24c6cc260fda26c9d18cf7fa
- Date: Sat Feb 09 20:41:15 +0000 2008
- Committer: Johan Sørensen (johan@johansorensen.com)
- Author: Johan Sørensen (johan@johansorensen.com)
- Commit SHA1: bf1b1f6305849d8f24c6cc260fda26c9d18cf7fa
- Tree SHA1: 394927c923c76ee5055d50b06f1a574d6361c7ad
make ruby-git stricter about hte diff parsing it does
Commit diff
| |   |
| 119 | 119 | final = {} |
| 120 | 120 | current_file = nil |
| 121 | 121 | @full_diff.split("\n").each do |line| |
| 122 | | if m = /diff --git a\/(.*?) b\/(.*?)/.match(line) |
| 122 | if m = /^diff --git a\/(.*?) b\/(.*?)/.match(line) |
| 123 | 123 | current_file = m[1] |
| 124 | 124 | final[current_file] = {:patch => line, :path => current_file, |
| 125 | 125 | :mode => '', :src => '', :dst => '', :type => 'modified'} |
| 126 | 126 | else |
| 127 | | if m = /index (.......)\.\.(.......)( ......)*/.match(line) |
| 127 | if m = /^index (.......)\.\.(.......)( ......)*/.match(line) |
| 128 | 128 | final[current_file][:src] = m[1] |
| 129 | 129 | final[current_file][:dst] = m[2] |
| 130 | 130 | final[current_file][:mode] = m[3].strip if m[3] |
| 131 | 131 | end |
| 132 | | if m = /(.*?) file mode (......)/.match(line) |
| 132 | if m = /^(.*?) file mode (......)/.match(line) |
| 133 | 133 | final[current_file][:type] = m[1] |
| 134 | 134 | final[current_file][:mode] = m[2] |
| 135 | 135 | end |
| toggle raw diff |
--- a/vendor/ruby-git/lib/git/diff.rb
+++ b/vendor/ruby-git/lib/git/diff.rb
@@ -119,17 +119,17 @@ module Git
final = {}
current_file = nil
@full_diff.split("\n").each do |line|
- if m = /diff --git a\/(.*?) b\/(.*?)/.match(line)
+ if m = /^diff --git a\/(.*?) b\/(.*?)/.match(line)
current_file = m[1]
final[current_file] = {:patch => line, :path => current_file,
:mode => '', :src => '', :dst => '', :type => 'modified'}
else
- if m = /index (.......)\.\.(.......)( ......)*/.match(line)
+ if m = /^index (.......)\.\.(.......)( ......)*/.match(line)
final[current_file][:src] = m[1]
final[current_file][:dst] = m[2]
final[current_file][:mode] = m[3].strip if m[3]
end
- if m = /(.*?) file mode (......)/.match(line)
+ if m = /^(.*?) file mode (......)/.match(line)
final[current_file][:type] = m[1]
final[current_file][:mode] = m[2]
end |