##// END OF EJS Templates
scm: mercurial: diff '-c' option supports above Mercurial 1.2 (#3724, #7253)....
Toshi MARUYAMA -
r4566:a6f05b5e56fd
parent child
Show More
@@ -154,14 +154,18 module Redmine
154 154 def diff(path, identifier_from, identifier_to=nil)
155 155 path ||= ''
156 156 diff_args = ''
157 diff = []
157 158 if identifier_to
158 159 diff_args = "-r #{hgrev(identifier_to)} -r #{hgrev(identifier_from)}"
159 160 else
161 if self.class.client_version_above?([1, 2])
160 162 diff_args = "-c #{hgrev(identifier_from)}"
163 else
164 return []
165 end
161 166 end
162 167 cmd = "#{HG_BIN} -R #{target('')} diff --nodates --git #{diff_args}"
163 168 cmd << " -I #{target(path)}" unless path.empty?
164 diff = []
165 169 shellout(cmd) do |io|
166 170 io.each_line do |line|
167 171 diff << line
@@ -32,7 +32,8 class RepositoriesMercurialControllerTest < ActionController::TestCase
32 32 @request = ActionController::TestRequest.new
33 33 @response = ActionController::TestResponse.new
34 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 37 end
37 38
38 39 if File.directory?(REPOSITORY_PATH)
@@ -132,6 +133,8 class RepositoriesMercurialControllerTest < ActionController::TestCase
132 133 get :diff, :id => 3, :rev => 4
133 134 assert_response :success
134 135 assert_template 'diff'
136
137 if @repository.scm.class.client_version_above?([1, 2])
135 138 # Line 22 removed
136 139 assert_tag :tag => 'th',
137 140 :content => '22',
@@ -140,6 +143,7 class RepositoriesMercurialControllerTest < ActionController::TestCase
140 143 :content => /def remove/ }
141 144 end
142 145 end
146 end
143 147
144 148 def test_annotate
145 149 get :annotate, :id => 3, :path => ['sources', 'watchers_controller.rb']
@@ -43,13 +43,19 begin
43 43 end
44 44
45 45 def test_diff
46 if @adapter.class.client_version_above?([1, 2])
46 47 assert_nil @adapter.diff(nil, '100000')
48 end
47 49 assert_nil @adapter.diff(nil, '100000', '200000')
48 50 [2, '400bb8672109', '400', 400].each do |r1|
49 51 diff1 = @adapter.diff(nil, r1)
52 if @adapter.class.client_version_above?([1, 2])
50 53 assert_equal 28, diff1.size
51 54 buf = diff1[24].gsub(/\r\n|\r|\n/, "")
52 55 assert_equal "+ return true unless klass.respond_to?('watched_by')", buf
56 else
57 assert_equal 0, diff1.size
58 end
53 59 [4, 'def6d2f1254a'].each do |r2|
54 60 diff2 = @adapter.diff(nil,r1,r2)
55 61 assert_equal 50, diff2.size
General Comments 0
You need to be logged in to leave comments. Login now