From b7dffa44c92ce7a18f13504d5ad3f7b4d79ce57d Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Fri, 4 Mar 2011 04:25:48 +0000 Subject: [PATCH] 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 --- .../repositories/mercurial_repository.hg | Bin 7104 -> 8902 bytes .../repositories_mercurial_controller_test.rb | 6 ++- .../scm/adapters/mercurial_adapter_test.rb | 37 +++++++++++++----- test/unit/repository_mercurial_test.rb | 14 ++++--- 4 files changed, 41 insertions(+), 16 deletions(-) diff --git a/test/fixtures/repositories/mercurial_repository.hg b/test/fixtures/repositories/mercurial_repository.hg index c06844d235c3fad69b6e85f0b743f445f01f0cee..2b4eb62410643ae3c466665bab4f63dd0e7978e6 100644 GIT binary patch literal 8902 zcmaiWRa6uV)a}q+1Cj#_Fmw+f9YYSKbazWhN~$w-J3}`^w;-L;F?0(8N=bu+ilXTM z{de8hyY5+Q?{oIk*-!f%xR$t>s+EVVILwmA*z#KA=|2FD;p>0@zuE!6V-Hm`%juaN ztfA85iPzZKMi|gZ5+W1;lu_@t#8o30>rgMm0000b0&noY1|W#ZMCH3Y6BoxAOESAY zuErGe=!83XtQ0TS9xSY2Pn|Up3&z96%f|YW;usHVw<;bIWV+-xX5O;mJTX05eKDRm z9L=dPl7nUZg=j;P4E|#mN0M6f@yd6}kJ0)7=KoeOQ~WRe?*ssN{D=SK{}pQb02pj2>SKeqlKL;|5E#*r-62k=xa8++)j45msh>+3)D%%fV0 z&+y>C&ws;*EdZ9(g@@-oHC_pSvlOmo{9Vyt@e7ohaD~P2gxNz;O7dHAeo37o*UCb; zCtE&Z;jz9Nn2L4o^{%hjq9%ZRa{VQH9(h%EDt~`=CDx(nrt*u@E9DI7bG$+S$zE-Y zWo=l!scp$x9D%P5mkQ8UD$B4zR%h!79>S{)I9Vk`ASbHszjbO|0n z_vgnp#Nn5G@~`YZ93s9LuUqfp7Z5WsIE(ep=Z-#B?qz#+BqncY>msW#zdw6fTpNA~ zvL+-ucA{|JcF}8GqveKP<90p&(YfjRRHWL!s?q1@al7Pb0b%(|*+iy~o9jdch0ar7 ze6|P@Kc9KxNVr?KIsEMS^Ofv4?z7(djl8CiUr_j8^QR}1fvF+vOsh1G1sp>gXL5K@ zNE9h;;YDWnXVU3EhWIbtUD>&*iARx8j1FT@1Zmp|%=~RQ`E|*K2Nw}Bj~Ra?;yT%*($V(Y{OO9gUr|wNq#rRb;C*@QdQC}v zJWFbTikr61@a(@AM~WOIERHC$O(@(XC7oc(fjZ=~IF?v8!NKMbTI)yYSkOLt5E(k! zqVBH5RV;II(L+jdvUhE?*G2Fdf(^qX-fs5Z;5O8v%u%Am_#LaTapHlQnB$uNz4ss& zkIRd~3(qB%2M_8X6Un;7>|qWh;Vl6X%q6FbHMZ5HZ>N2@EMtW&^9_DwaiTE z+58HBe%{H^@-`8IcoO{O)96t}j`S`GPro{$uVbhhy(V+d<^gV*c59rnc$h`nRA@e5 z`f4d=V%dEYe{oN86YhsjkxbH}ahB$*tDAXQe#k$HekT%d@z0{^MlB2I(R}D&=yiKX z3sj<@%>m5{tXPZh$tC)WcI~l{t{40bAQ61H=gJqN4Cca$+jHbU?Yh{eRqQGu@~2Rf zZH}J(r5URAsXSuLIky!AOGx^_-wBj<36y-B-GN)V(O!rhJTZn4or7N$54S+TB@1x5aQi=(n zt{H2zNE&0c@Yno!%m<+5$Za5CP@}?8WDqvvgwX6%%)sf1mZ*Tu3xC3^9_FKp6l70+ zyV5F9)6hE~#O@A3Q^hfOsmD)jl2&pQ?K`uBanM7N##Wd#R;Q$#b-Kvt%f2}Wk-c9u zl)P5Jed>oay4lXJN=6UI#iMV{y{Qf)lwqN-%C48`Xe2emJuWEIB!2j#?Wg3+eRH3R zd=g0WXkvwFxQdQ`nV?b44zwOw{jE>1KEhaiiICH(@o(1J$2ka` zYdtCP*Kvva7HcfwjL88<7>`773a?X`?8w-S}A zt>4vc(myRekIH`XeljcYji29>I5wSp*JshpGW%u`!>6LU^h9;N>x7iY4I!?C#ffs5 z8+cYiuAU>pf0Rzo>K2Cs!^5fLY;DCov{5$d`oy8vB2>MCv1X!FTFjY*V>6RVyhUn> zCgnW~Q*14nYt6&@h7)lnn`f=E<+>#SWrgAY>L!2#QX5Z6kq z!&%l!2qfK_=Q$vCq2sS)O_@y|9p=#RTX0Hoi31@?wR-z9 zcLLDlOmUb@vmUpQ%2qtuXeNn08i~C9aZX3qgpZCdRBPs~yuNSQ>={jdZ!%#mYmQ`z2VLiQhdri=*gt!5L}m#} ztkv)+F22;kk{qoRt3KBQF^Dn#VaI zOK>4~v&9O@Mi2%KyhDnTJ`fyJB{-cSv7SBRFP^lP;40Hp6ITY%zG1X}^6teXa;z^n zqbc7#*getS0)I>9_As!}>37fz0=1P%1$?o7$V(%TKa=n**`1GWiTk zdQo~&YkZWDn}xDO!^AR@itJ+>+~HC1qL@#FUh7pB_9Ff^w(B`j1%&Ezz_v;i85z>`uE&TZb4J3z5FbsWLS9K zIX1ty2JXg<(^V#Bg3!k#i-T{Rv$P3xG6hsyqDWibvCaAIHZa478-FNM9sT+n@JsC_ zdPdu_BPTP0YXpz2PvzFE%x)n;k&$fgDZB?u32>EvZ?n7N9@A+Usgc1jY zOak^B+cS!o22|R4o$gmx+M~#xn0_=W7wfPvy6wG)B7VtsWku;J@Xn6F-Dph&&ch zd>q~|5;iAPB*W)@Z8UsM; zyb26LF~_54&Dp5I3nAq0DF^DL)sAF_-|B9dGN6GVmRd(Dy3njXc@Xz+03Ab{QDzWN zG^CUGqM^4}UJJ6@T;L^^$Kf^QH&ozwLO63qle{e3?yhV)JmR0WT6nu`05l4SYmWN!#pbBE#Zjb9>75oIS3yh9$F;1ofh(ONH?m zwa8PPr0Pgu73P3Z{SaWBnZDXtFFrkp=At!EL&|CJvn+os?a1-;OUybFSuKL4I{kvVo4zg&~qlGAQ*4Kv*|Jq5iva#uikPv@j5;H}Zui5nGh zJf>$&rPa0Z3h2t@qEWPvx&808`O^!t^-5COIb8^TyO!ecf;qNv^-%d-U&W!tF}4kC zCgAj(JXVToOE2o#VnwpGu)zqLI411|B|SR+9f#c{t~G%aOeez99WZDK4`x(YtLYJ2 z7&M$}IZC-$1ZL9z(9AS=Cg!K9prSAd{X4vC-<(GCtL(McnV%4!VEsOryp`di!@WT zccmD*lf{M%RLp{qN>Qrzj6_;W`&dQ6kEK%eozND0TS_w`O1DT?ug*2}3pl#kHi_|D zS$UhY8>%zmP0B#OffC0zuiJ0xE`IM@j!l^d48b890khXJBEvd{6>yCO)sK<%UGg3h z1#(?IBUO0qw0tKPmAYg=tB*HKR4>vRi>WUFDAG3&@?n7s%?v*5(hs$Ec97ags)rqU z++ILO!8V=9n?e8QZB(gegVrx%raF{vC>mM%7TAi$O+M8IQ#0g%-#3S&5WU5V;Y*`z z$l~d^1x4YotqlZn%f{YXqBaS%pgzU1YABcFR4B32%r|VkQ|}PUk-2wpPhN**9X&mG2o15pEow=l61o^vR~1Kv+}~sRIHiqV1Uwmrgb9u|G|+Hzby9qxWk|@1XEdun zdUn-K)5&k4!z4#KkG|nzCa0q?aEZ%myEn&~Jx0l<#2(xUEk)Ri%jRS|4waZ+v{#qE znW%rTTPQm=-#`;~_lF*#}kskG&)S()pcp?!&No9PykpVL0t@_cq;r}-4c zi>$0A%<#gk$O>D03YUia8!GfiMKY3UMg!4ySZtn2Qsu{bi z#oFN=1+oqIXj#`h3&gI+SO+P8|AzCCe{0IkMyB(wa;%I^oDBD=Vn}trpg=;p2QAac z7B#f?k>A71)kCfc>wz9RDErheANI+>G&3M(n=$Qq+6TOo{9!OcG~sobVSGRy4c``f zir+xw$5}#^k&a&ph#)`0Hb{h>E4yCmJmH|3YLpV>FqzYrdaH#!!Jz3!DvRR;ypfU1 zV)(w|Qzmb*Ae+nCmkjkEtxlOxNw55*m4+xLIJ>#KRpbxp%!rk6jdlo@vW%ccxsHDm0y-ehX@x zokq~CEavFyn9zUcH<#fs@8dq)lPxdMglW2^B>GwY5LoQq2l4eD9urkN; zkKogR_7yO>q|76`@2!g!$$ACn;(OYSivOtjnKuHJ>A5IssKJMk}k@m@fe^l|b{ z!7qt3-ty!}nR5-mOe^iOkje_Z*k8^N2@b5;3(Eb~BJJse(;1 zxz&jfdD(a!M(VT{Neqb(&h21n|5-vT&7+W-RKqQ~c8A9uBS%D%g^PO{o2vOECdpp< zoAW}t?jnLy{-^i{z}fo?d>j^W`0mj;q5aumJwvkq!6kZ$Qqv6-nW7fmOPS`sA>ZPA zl1Ok~_#3~7Fxy(2{WoK+(0yX&m`8n#p*FPKKJxweE>jPco7@n1ZY&@-Y15S=Y4 z0C`nFw;sacou{=31V7nJ!WWmX`jzt(RJ6>Uyp@{OKHOdr$1Re^9&^)@48+Gu99%Hx81M4yn$Pe=!yreXT+*0)?- zTA!(=M;_v;*y#%~N}O(ijMn7vV(;htbvWO=r~rd zahXV@GjZ8*LSRVojo?o+l$Obfy>m|en?1H68iGD|z0z^tGTBio2(O z`JKe`6YvJj$f%@I`w`7pE=RfTarjB@FPJ2(s6pJx0~2iC>3uUFHMu8QOk2~Je?c}c z$Q1eqfTnG#7DqII*1{0&Y4y8XX;S;NWW_??Y;g9vWO4oCyvqo@)RJ8Y9rp`WT)qun z=kbBrzBfOLA=`^3&QsTc5tKsJ$Fi*wZE<^W=LWSc5knlNDrlF)ToZUD-9CMEU&_JM zrw^=a?nV~WoV%$ALuDE=>IuxC18;@E0=oUlP!1NdXF0_1)5EbnfOUPral1&wHC&% zFrI2_w&2e5AIum|D5%`*pjbSRY`>f&XBwo$Djgz;4Ro%HbxqAVWE!{=q~*AB19_ot zpxIbtu3HrQvV5)cw4>p))-@Hsgi69bFZ^3B#riaG)&ID3HI+y+%I!12lXbR3w^Q|wGHZM-4G(G1Xgt){Yj#EcwGiPOd z{@H#KS~q{7Zm!%Qbhc%-4J*9UiY8*MVP)OkN8>cl`sE38#FzRRL4cZwy~)3w zj1Sw-)yHzpHP9&yE;#+QYITrPqgMasUW){q0!0(3gJYB_&;T~LJ4J9UP8;Qyo@qdD zap2eTs2=Wv+0*4$2g}?>zPfto&yiv&lS}x_zJu-HT`~`enq|t1Td-vqA9T{3v7`R@ zrR8KqorxPY#U0Ff_zL>H{I76%VJ&SOS+v3uC~f9|O(y-stk<9i+TlPwxRo}~$u6IM zClm5J{7%c8ydPO7SfwM>3~nDvlA2Vf$y9{%f-$!Ei>|XCmRvPyk{l{58(5Hn1}dwu2Upngsb+6lKtmUnPv-?<1IEU@9KnSast@ zML!^o5xFcpo~|WynXTcASSCpvQ16Hrk_d14g1lJ#oIF4_Z6m~MtSN>Gy|0hY#b%GT zM2j8ZG3Tkm&agCukFHEvu7}T|s#!1rFgc>=pu%YsCiCG934wQ_jRVnFeACHrQ$>No z?Bn$&til(U&FJX_LZYlO*<-eNvYD}m?OV61$2mYd%iA|77g3Ks?j;}Kuy-pV(Bd$B zi2Q&IbCKUDi}L;kC}ig}VNrX%y1=X7aJ^s0gV+^)dBebP8le@jH9$OfO}Qd3{0QYl z_4D9QA(A`n!F%NQZnpR-M?7FeOl&;#0JR&F*n%W@O0z{Wo!I3_ye3`sHh>07V1$D* zdBVd4#m#w+7w%5&kSCxPYNUb~?zW_Zd5l^gq7dVN`@LB-?MIkF3HTswmz4>?4PhfY zTSr6mU=(z?8SZok?;aYRuh;{eYuI?g9P6K9r;X$S9j7?qzDJ|7G&gIMS^trVUZ%gr;#fSM znRU4zUL-~dlFJQV?~Cxug1^gxRkHTf^x$J?btT;gg?kYGyMbkUc692x7alc zY{+Bmv^T>Hk|bxuX)g+T_XJB81vUkK2vv?V#xk{@zf>GmBI{;9iayE z@UGn1elD2lc5mUedbu&A+bD)~*h99lR_iWj^AWg^ITYG4@rs!X=+k_&PLe`Fzu$$G*`9zZ3#X z+-uBGzwmA~ybD31sjty%v`x8xvzcGs2)(fr|FcuWMJ!G1zIaVuZHue{@3XbTx+Udq z6Wg1U*&g8SvX)?3t3ZHSxsl6UD}~wI!~%L^+4Q%^pf#6POY-Y(Z*eD?`WM}EsV8C# z6CHr2_JAVDDxnH-59#_r*A|_})_{a`>Ina=&6lxVjX2#g56MuS-9#}rgRh~bGQ5!5 zPLmojiA&Q!eQ2_P%#CN^6ZHepILdI#<5u|UKGyF=sQn7)k4mJDtfLwtzH8#rO4{v; zMfG$3pQP+09-#>)VCQe?i2hN#(r;Y5yJpNv4K7~=g~M(M#$yk+sw5r%SZZMTeT_ETP{d@RkAB=)MI1%|D@?wsf!t4{wiAbY-; zpnx&b6j38sSVAY|7e-H-AJh+@mu@5)=d)Pw%9DVIgeBm;9;xEkj+QkVZ$!7K=byof$K>!3S2KSSdqXu3 z8u%K6?BL9WA%vZ$E%Jm2{wZWn&*Y@Vw3zF-PApt#5U); zjk5ypar`@{bYaHIm784Sx}Iiy`;bGK3DF|)bT*ce+HuXVXg`1DyXL!HU$>nvHs!$A=dskK3+F2(Z7E__G(tYawJ#Wx(ewAuz7hGrKr=x@U#LSI0S2ISI`KRS3lfu&EY2HuaM7Dj?$x8XpC<^#_`#Jo@p#7 zae4?pMoWKT6TebjeaH9lFM<4 zK%%L5=wu*T{uD+lq!&W@SSY1$@N=cbr^W8V8;VrMlFc_d&HNO|iP7D#8VpX8DQFYD zx%YE2xdi(9lD^HOax&-s!d5``W7caem(TitkcUWTNi&|N;RC%Ncp&5a@9~s8;%xgh zuV{F8?O?N^;+?t%=5Ln$Oj18LjqB{)n^}&%|3S=!Va;u?UyaUZa_(|?Rfe)$jb!ME zC@RFOR|dH=KX9WL|R=VDm9c zH|SP{ng{lgaD%+f*Tu;x^q=9PMZ!-dhxb@p?gBR2#9LqE_O^7yDQao{vNb7lw7q|t z_92j*7nJCaoUqGd){Aqb`7E7C|0%6=?R&7gKiwmjOsE3BFDFPp`t&zJym^2J*^X8+ z*+(|6{u(j-x@5I;DhCvET8Z*ga3!|^)=aAT-ojD zduDZ^lg+=eCio{NG!+V^eZK+juP0v)y^uZb#j9|ba6k7RIk+h>dV?J`xZ+8z z`ugS{-h}s#KfyJh)Ax&CH{IvF>b@V%^;}01+VM7bG>5uu%JdGzQ)FIUFuvvPstA=Y z58A8+ugKbQ4~}x}&k}tAkBdbyd5I+s=!UER99!*zz5d)_qq#mGHUFaw{pfZnYrmV=8^5;z9c2wq-IcD)6qsLh6do6tsh#!9cLi}l>tz8%($G>w{-Jt!IYt+jg%){z3KeJG4V+PuYdjz DiQ#Fz literal 7104 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 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 diff --git a/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb b/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb index d275798c1..b5629841b 100644 --- a/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb +++ b/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb @@ -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 diff --git a/test/unit/repository_mercurial_test.rb b/test/unit/repository_mercurial_test.rb index 271ffe43b..9c3032bf3 100644 --- a/test/unit/repository_mercurial_test.rb +++ b/test/unit/repository_mercurial_test.rb @@ -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)