From 30ad78e57da31443a2026b60bd5d8727d9503321 2009-09-20 15:20:22 From: Jean-Philippe Lang Date: 2009-09-20 15:20:22 Subject: [PATCH] Fixed: RepositoriesController#revision may show wrong revision (#3779). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2898 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 4240546..7527f0d 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -130,7 +130,7 @@ class RepositoriesController < ApplicationController end def revision - @changeset = @repository.changesets.find(:first, :conditions => ["revision LIKE ?", @rev + '%']) + @changeset = @repository.find_changeset_by_name(@rev) raise ChangesetNotFound unless @changeset respond_to do |format| diff --git a/app/models/repository.rb b/app/models/repository.rb index 8440bc6..2947d1c 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -92,6 +92,11 @@ class Repository < ActiveRecord::Base path end + # Finds and returns a revision with a number or the beginning of a hash + def find_changeset_by_name(name) + changesets.find(:first, :conditions => (name.match(/^\d*$/) ? ["revision = ?", name.to_i] : ["revision LIKE ?", name + '%'])) + end + def latest_changeset @latest_changeset ||= changesets.find(:first) end diff --git a/test/fixtures/changesets.yml b/test/fixtures/changesets.yml index 3eda7c5..41f077a 100644 --- a/test/fixtures/changesets.yml +++ b/test/fixtures/changesets.yml @@ -81,4 +81,24 @@ changesets_008: user_id: 3 repository_id: 10 committer: dlopper +changesets_009: + commit_date: "2009-09-10" + comments: One file added. + committed_on: 2009-09-10 19:04:35 + revision: "9" + id: 108 + scmid: + user_id: 3 + repository_id: 10 + committer: dlopper +changesets_010: + commit_date: "2009-09-10" + comments: Same file modified. + committed_on: 2009-09-10 19:04:35 + revision: "10" + id: 109 + scmid: + user_id: 3 + repository_id: 10 + committer: dlopper \ No newline at end of file diff --git a/test/fixtures/repositories/subversion_repository.dump.gz b/test/fixtures/repositories/subversion_repository.dump.gz index 997835048625569ed43e475c88348790d5f2d56d..79ef77fa7dc420f0715028a8e201901dbc66d4c1 100644 GIT binary patch literal 12611 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 literal 11015 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 H?4qCJq%w0S0qrAFns6{9 z$-<9?5!Th{-OiFv?YOlKR0ptq%;f36-b(RoOE9>M+DMMg&)B3~t3M(8Dp{VdvCYbL zhG}84En|uLo+20h<4!7z#6h)Hr*pioK?<;a4p8!-W@uSsyJ9J$pWDOw& zy=PHw@6EJR@|2CieATmVA@;}ux#gWqlrxy1l^{}%;^yzTVs%9Cc*f!d&zGvNQ6A7! z4pT`8aKf2mTlQ^aF6@)l+8mb%U~ zuhCrBow)0x(|%`Mf=(9RBm4Q%z0|E{y5ay8i(lK0&WTIV{dz2EnuasVeWHt2RI#sd z8>mLhaK>^(NJHPUoK}I=a`HEZHUR4#*P*8wtHY2&b{iI+{sCM4a zLerGiQ=U;FIKS(@1+S}ADaFS%g1VKe;V(Tarn9C?_p%0Y8DiA77@@%zA+IlqRHZ8r zRJ$8DH(p9wk;3A8?ZzV&Hc{~yZeXC! z;cjI!zL4KD>DK*LUYsy>BA4lr)$}Y|6^yxxZ*K zL1b?;ph^lwXawMUCgwO@(r*}2bt;a>a`KSocb><(ch#yLtEw~G7#|flq*Paar#>Z@ zpQaVdyoy;-u~Aly3BvcF_sNxK3<2w$hvGGL?_PB;AC;?S#v(MBd9@Cc*X-0vkxyOm zL3yTMJepAq*{sdJVYmLICZEs#l-gN0i{ZSxgs()2$wLZX$x-Ayj%i?3^Tc9c{~JC$ zzN*F0pm3+k%1c13TzTWWs`OhgR(Vh_+?sCwChkUTu+Hia*B!Z}eVa5wXsw1V6OYN2 z-K^tL8GGBbG60ns00L9DR&m<+fr@W&yjI(~)`bnSQ?fY;IvG{BR~W~iKCvKS+6M5F z3HW-Sts-8X{7FgoD(TpC{7W^5JVa*$rQC2xuIvCP6|0VPO&ChR`gJS0Jp@$zUWP=T zyZB(E%5D@ss#+%xP#vOlX;A|J z4}5~UZ?}>+w+b;K15lNAJ)Rokq-0*j;;wZ<>f>M6+cNv(N-jQnxZA00YH>sYm5IRk zIW=n+OZE?T0VrA(LbqF#qW^`h>*TCv2F7C?n80Fc6`+Ba9XA38RvZ8htZ+nZ3Ayy> z<*KqKLxubd2`1FysFoNm%|cy(Y;Cvfj1aAnWKUyrKE5yx|1 zZaugDF$VXs{e+{eaQ>Iq`#L}Oso+=2AE<-C<kA7InEg*HQbNZnX~s)z{{2->1S;t#1t??^i$KAXXp~?o1d(YZHj&P; zBhlG-I)M~SW6^%Baw3raY?Tw26(N*Kz~7V!!5t#8FhtCX0C^HnD&|FwR~`!B_9e35 zXdBR9C<8e{!AvPAfFO=NW;)zs39>+w2o_IZ0!Bd6P$6f$O#rRs^8^qGN!TnABpGj$ zKoLB)kS`QS#wU6~VrV9;1~!EaLuiiyF~2Q{`di`BKaGqOMs6$!HqxkncbOv1j`owl z;7Jh6jzuCu!E_RfPU28WTstb8&LNY@lwca0`;*Eb+HWhL76`= zCk0tBa#k=30tqx$9wdXru)RDHPr~L2LO_VmliGkwAr2@I3P3SWB9qu?VwTDzB1pjD zNhA=+ho`}zlnTZ0KP!;K3lYHWyolcj|BXBW#I^!ud^o;r9wdRo!m;{h3oO-D%#y$g zp|KK2*u-z6;6WT7E5Zg`$b#6A03N~Tg~<3UFoGqKu&lsHmY4^tho9gOi^dA)gn|$m zWCcPpo+LszZnqT}!Gq<)A>awXu~JqkZ`@X)n9UorXl#ruA|e`$5c1*3^2TNhU=QHu zF?)Di*jHGD)i?%RNc`QvF}pz6S^nQ$1tBp@3TtwMb$_?V1{{B3iP^HhnJi($LSZP^ z$RIG1CuKq3;a?+TNnyrY!3zPB@?Zt5Z+6ǁR$PH23}HwR%Y%f?23iwPJh#vQmB9wi2A%ml z7{#%u1c$@u0)@)q;_WyzE{)1&6Cpe~IGBiMu}G|7h)N>-Skyiy z=Ktr2|FInL|99{I!@D>6kFL)Aq`G{py!;=o&X6#!<7;^A%z{MdKIw+jP*G1gRj zJi#7Mv%ypUOd9@^w_yHR4jH@A^kZ;o>|i2|O9;kuU=q?P1OkoCX2JP{g{K6Q$>pr*rTp76+0XLW{{sr2X3oSt004RX BzVrY9 diff --git a/test/functional/repositories_controller_test.rb b/test/functional/repositories_controller_test.rb index d786c2e..5ff2a6a 100644 --- a/test/functional/repositories_controller_test.rb +++ b/test/functional/repositories_controller_test.rb @@ -77,6 +77,13 @@ class RepositoriesControllerTest < ActionController::TestCase ) end + def test_revision + get :revision, :id => 1, :rev => 1 + assert_response :success + assert_not_nil assigns(:changeset) + assert_equal "1", assigns(:changeset).revision + end + def test_revision_with_before_nil_and_afer_normal get :revision, {:id => 1, :rev => 1} assert_response :success diff --git a/test/functional/repositories_subversion_controller_test.rb b/test/functional/repositories_subversion_controller_test.rb index 865bae3..f07c7ea 100644 --- a/test/functional/repositories_subversion_controller_test.rb +++ b/test/functional/repositories_subversion_controller_test.rb @@ -102,7 +102,7 @@ class RepositoriesSubversionControllerTest < ActionController::TestCase changesets = assigns(:changesets) assert_not_nil changesets - assert_equal %w(7 6 5 2), changesets.collect(&:revision) + assert_equal %w(10 9 7 6 5 2), changesets.collect(&:revision) end def test_entry diff --git a/test/unit/changeset_test.rb b/test/unit/changeset_test.rb index 9af53a3..02736a9 100644 --- a/test/unit/changeset_test.rb +++ b/test/unit/changeset_test.rb @@ -91,7 +91,7 @@ class ChangesetTest < ActiveSupport::TestCase end def test_next_nil - changeset = Changeset.find_by_revision('8') + changeset = Changeset.find_by_revision('10') assert_nil changeset.next end end diff --git a/test/unit/repository_subversion_test.rb b/test/unit/repository_subversion_test.rb index 17a0a42..f0ad212 100644 --- a/test/unit/repository_subversion_test.rb +++ b/test/unit/repository_subversion_test.rb @@ -33,8 +33,8 @@ class RepositorySubversionTest < ActiveSupport::TestCase @repository.fetch_changesets @repository.reload - assert_equal 8, @repository.changesets.count - assert_equal 16, @repository.changes.count + assert_equal 10, @repository.changesets.count + assert_equal 18, @repository.changes.count assert_equal 'Initial import.', @repository.changesets.find_by_revision('1').comments end @@ -46,7 +46,7 @@ class RepositorySubversionTest < ActiveSupport::TestCase assert_equal 5, @repository.changesets.count @repository.fetch_changesets - assert_equal 8, @repository.changesets.count + assert_equal 10, @repository.changesets.count end def test_latest_changesets_with_limit