@@ -154,14 +154,18 module Redmine | |||||
154 | def diff(path, identifier_from, identifier_to=nil) |
|
154 | def diff(path, identifier_from, identifier_to=nil) | |
155 | path ||= '' |
|
155 | path ||= '' | |
156 | diff_args = '' |
|
156 | diff_args = '' | |
|
157 | diff = [] | |||
157 | if identifier_to |
|
158 | if identifier_to | |
158 | diff_args = "-r #{hgrev(identifier_to)} -r #{hgrev(identifier_from)}" |
|
159 | diff_args = "-r #{hgrev(identifier_to)} -r #{hgrev(identifier_from)}" | |
159 | else |
|
160 | else | |
160 | diff_args = "-c #{hgrev(identifier_from)}" |
|
161 | if self.class.client_version_above?([1, 2]) | |
|
162 | diff_args = "-c #{hgrev(identifier_from)}" | |||
|
163 | else | |||
|
164 | return [] | |||
|
165 | end | |||
161 | end |
|
166 | end | |
162 | cmd = "#{HG_BIN} -R #{target('')} diff --nodates --git #{diff_args}" |
|
167 | cmd = "#{HG_BIN} -R #{target('')} diff --nodates --git #{diff_args}" | |
163 | cmd << " -I #{target(path)}" unless path.empty? |
|
168 | cmd << " -I #{target(path)}" unless path.empty? | |
164 | diff = [] |
|
|||
165 | shellout(cmd) do |io| |
|
169 | shellout(cmd) do |io| | |
166 | io.each_line do |line| |
|
170 | io.each_line do |line| | |
167 | diff << line |
|
171 | diff << line |
@@ -32,9 +32,10 class RepositoriesMercurialControllerTest < ActionController::TestCase | |||||
32 | @request = ActionController::TestRequest.new |
|
32 | @request = ActionController::TestRequest.new | |
33 | @response = ActionController::TestResponse.new |
|
33 | @response = ActionController::TestResponse.new | |
34 | User.current = nil |
|
34 | User.current = nil | |
35 | Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH) |
|
35 | @repository = Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH) | |
|
36 | assert @repository | |||
36 | end |
|
37 | end | |
37 |
|
38 | |||
38 | if File.directory?(REPOSITORY_PATH) |
|
39 | if File.directory?(REPOSITORY_PATH) | |
39 | def test_show |
|
40 | def test_show | |
40 | get :show, :id => 3 |
|
41 | get :show, :id => 3 | |
@@ -132,12 +133,15 class RepositoriesMercurialControllerTest < ActionController::TestCase | |||||
132 | get :diff, :id => 3, :rev => 4 |
|
133 | get :diff, :id => 3, :rev => 4 | |
133 | assert_response :success |
|
134 | assert_response :success | |
134 | assert_template 'diff' |
|
135 | assert_template 'diff' | |
135 | # Line 22 removed |
|
136 | ||
136 | assert_tag :tag => 'th', |
|
137 | if @repository.scm.class.client_version_above?([1, 2]) | |
137 | :content => '22', |
|
138 | # Line 22 removed | |
138 |
|
|
139 | assert_tag :tag => 'th', | |
139 | :attributes => { :class => /diff_out/ }, |
|
140 | :content => '22', | |
140 | :content => /def remove/ } |
|
141 | :sibling => { :tag => 'td', | |
|
142 | :attributes => { :class => /diff_out/ }, | |||
|
143 | :content => /def remove/ } | |||
|
144 | end | |||
141 | end |
|
145 | end | |
142 | end |
|
146 | end | |
143 |
|
147 |
@@ -43,13 +43,19 begin | |||||
43 | end |
|
43 | end | |
44 |
|
44 | |||
45 | def test_diff |
|
45 | def test_diff | |
46 | assert_nil @adapter.diff(nil, '100000') |
|
46 | if @adapter.class.client_version_above?([1, 2]) | |
|
47 | assert_nil @adapter.diff(nil, '100000') | |||
|
48 | end | |||
47 | assert_nil @adapter.diff(nil, '100000', '200000') |
|
49 | assert_nil @adapter.diff(nil, '100000', '200000') | |
48 | [2, '400bb8672109', '400', 400].each do |r1| |
|
50 | [2, '400bb8672109', '400', 400].each do |r1| | |
49 | diff1 = @adapter.diff(nil, r1) |
|
51 | diff1 = @adapter.diff(nil, r1) | |
50 | assert_equal 28, diff1.size |
|
52 | if @adapter.class.client_version_above?([1, 2]) | |
51 | buf = diff1[24].gsub(/\r\n|\r|\n/, "") |
|
53 | assert_equal 28, diff1.size | |
52 | assert_equal "+ return true unless klass.respond_to?('watched_by')", buf |
|
54 | buf = diff1[24].gsub(/\r\n|\r|\n/, "") | |
|
55 | assert_equal "+ return true unless klass.respond_to?('watched_by')", buf | |||
|
56 | else | |||
|
57 | assert_equal 0, diff1.size | |||
|
58 | end | |||
53 | [4, 'def6d2f1254a'].each do |r2| |
|
59 | [4, 'def6d2f1254a'].each do |r2| | |
54 | diff2 = @adapter.diff(nil,r1,r2) |
|
60 | diff2 = @adapter.diff(nil,r1,r2) | |
55 | assert_equal 50, diff2.size |
|
61 | assert_equal 50, diff2.size |
General Comments 0
You need to be logged in to leave comments.
Login now