scm: mercurial: update test repository for path encoding (#2664).
Mercurial (and also Git) treats file names as byte string. This mercurial test repository contains Latin-1 encoding path. Be careful on non Latin-1(CP1252) Windows. If your Windows is not Latin-1 Windows, in order to checkout(update) Latin-1 path, You need to use cygwin 1.7 and set LANG=en_US.ISO-8859-1. Please refer. http://mercurial.selenic.com/wiki/EncodingStrategy?action=recall&rev=6 Redmine mercurial adapter do not need to checkout(update) repository. Mercurial does not have "bare" repository such as Git. You can use "hg update null" for equivalent "bare" repository. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4996 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
bea085c3ba
commit
fe4159fc99
Binary file not shown.
|
@ -32,7 +32,11 @@ class RepositoriesMercurialControllerTest < ActionController::TestCase
|
|||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
User.current = nil
|
||||
@repository = Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH)
|
||||
@repository = Repository::Mercurial.create(
|
||||
:project => Project.find(3),
|
||||
:url => REPOSITORY_PATH,
|
||||
:path_encoding => 'ISO-8859-1'
|
||||
)
|
||||
assert @repository
|
||||
@diff_c_support = true
|
||||
end
|
||||
|
|
|
@ -10,10 +10,19 @@ begin
|
|||
|
||||
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
|
||||
|
||||
CHAR_1_HEX = "\xc3\x9c"
|
||||
|
||||
if File.directory?(REPOSITORY_PATH)
|
||||
def setup
|
||||
@adapter = Redmine::Scm::Adapters::MercurialAdapter.new(REPOSITORY_PATH)
|
||||
@diff_c_support = true
|
||||
|
||||
@tag_char_1 = "tag-#{CHAR_1_HEX}-00"
|
||||
@branch_char_1 = "branch-#{CHAR_1_HEX}-00"
|
||||
if @tag_char_1.respond_to?(:force_encoding)
|
||||
@tag_char_1.force_encoding('UTF-8')
|
||||
@branch_char_1.force_encoding('UTF-8')
|
||||
end
|
||||
end
|
||||
|
||||
def test_hgversion
|
||||
|
@ -49,7 +58,7 @@ begin
|
|||
adp = Redmine::Scm::Adapters::MercurialAdapter.new(repo)
|
||||
repo_path = adp.info.root_url.gsub(/\\/, "/")
|
||||
assert_equal REPOSITORY_PATH, repo_path
|
||||
assert_equal '16', adp.info.lastrev.revision
|
||||
assert_equal '24', adp.info.lastrev.revision
|
||||
assert_equal '4cddb4e45f52',adp.info.lastrev.scmid
|
||||
end
|
||||
end
|
||||
|
@ -97,7 +106,7 @@ begin
|
|||
|
||||
def test_diff_made_by_revision
|
||||
if @diff_c_support
|
||||
[16, '16', '4cddb4e45f52'].each do |r1|
|
||||
[24, '24', '4cddb4e45f52'].each do |r1|
|
||||
diff1 = @adapter.diff(nil, r1)
|
||||
assert_equal 5, diff1.size
|
||||
buf = diff1[4].gsub(/\r\n|\r|\n/, "")
|
||||
|
@ -219,24 +228,32 @@ begin
|
|||
end
|
||||
|
||||
def test_tags
|
||||
assert_equal ['tag_test.00', 'tag-init-revision'], @adapter.tags
|
||||
assert_equal [@tag_char_1, 'tag_test.00', 'tag-init-revision'], @adapter.tags
|
||||
end
|
||||
|
||||
def test_tagmap
|
||||
tm = { 'tag_test.00' => '6987191f453a',
|
||||
'tag-init-revision' => '0885933ad4f6' }
|
||||
tm = {
|
||||
@tag_char_1 => 'adf805632193',
|
||||
'tag_test.00' => '6987191f453a',
|
||||
'tag-init-revision' => '0885933ad4f6',
|
||||
}
|
||||
assert_equal tm, @adapter.tagmap
|
||||
end
|
||||
|
||||
def test_branches
|
||||
assert_equal ['default', 'branch (1)[2]&,%.-3_4', 'test-branch-00'],
|
||||
@adapter.branches
|
||||
assert_equal ['default', @branch_char_1,
|
||||
'test_branch.latin-1', 'branch (1)[2]&,%.-3_4', 'test-branch-00'],
|
||||
@adapter.branches
|
||||
end
|
||||
|
||||
def test_branchmap
|
||||
bm = { 'default' => '4cddb4e45f52',
|
||||
'branch (1)[2]&,%.-3_4' => '933ca60293d7',
|
||||
'test-branch-00' => '3a330eb32958' }
|
||||
bm = {
|
||||
'default' => '4cddb4e45f52',
|
||||
@branch_char_1 => 'c8d3e4887474',
|
||||
'test_branch.latin-1' => 'c2ffe7da686a',
|
||||
'branch (1)[2]&,%.-3_4' => '933ca60293d7',
|
||||
'test-branch-00' => '3a330eb32958'
|
||||
}
|
||||
assert_equal bm, @adapter.branchmap
|
||||
end
|
||||
|
||||
|
|
|
@ -25,7 +25,11 @@ class RepositoryMercurialTest < ActiveSupport::TestCase
|
|||
|
||||
def setup
|
||||
@project = Project.find(3)
|
||||
@repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH)
|
||||
@repository = Repository::Mercurial.create(
|
||||
:project => @project,
|
||||
:url => REPOSITORY_PATH,
|
||||
:path_encoding => 'ISO-8859-1'
|
||||
)
|
||||
assert @repository
|
||||
end
|
||||
|
||||
|
@ -33,8 +37,8 @@ class RepositoryMercurialTest < ActiveSupport::TestCase
|
|||
def test_fetch_changesets_from_scratch
|
||||
@repository.fetch_changesets
|
||||
@repository.reload
|
||||
assert_equal 17, @repository.changesets.count
|
||||
assert_equal 25, @repository.changes.count
|
||||
assert_equal 25, @repository.changesets.count
|
||||
assert_equal 32, @repository.changes.count
|
||||
assert_equal "Initial import.\nThe repository contains 3 files.",
|
||||
@repository.changesets.find_by_revision('0').comments
|
||||
end
|
||||
|
@ -47,7 +51,7 @@ class RepositoryMercurialTest < ActiveSupport::TestCase
|
|||
assert_equal 3, @repository.changesets.count
|
||||
|
||||
@repository.fetch_changesets
|
||||
assert_equal 17, @repository.changesets.count
|
||||
assert_equal 25, @repository.changesets.count
|
||||
end
|
||||
|
||||
def test_isodatesec
|
||||
|
@ -170,7 +174,7 @@ class RepositoryMercurialTest < ActiveSupport::TestCase
|
|||
@repository.fetch_changesets
|
||||
@repository.reload
|
||||
changesets = @repository.latest_changesets('README', nil)
|
||||
assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
|
||||
assert_equal %w|17 8 6 1 0|, changesets.collect(&:revision)
|
||||
|
||||
path = 'sql_escape/percent%dir/percent%file1.txt'
|
||||
changesets = @repository.latest_changesets(path, nil)
|
||||
|
|
Loading…
Reference in New Issue