Defect #2294
closedProblems displaying repository files and diffs
0%
Description
I just upgraded to redmine 0.8RC1, and I've lost the ability to look at files in the repository, or diffs from the repository. It does display changesets, and the names of the affected files, but clicking on a filename or View differences, or diff results in the dread "The entry or revision was not found in the repository" error.
When migrating the database it told me I needed to upgraded to the Rails 2.1.2 gem, which I did.
I'm running on Mac OSX 10.5.5, Ruby 1.8.6, mysql 5.0.45.
The entry in the log when trying to view a file from the repository:
Processing RepositoriesController#entry (for 127.0.0.1 at 2008-12-07 14:18:44) [GET]
Session ID: 5c49c40d8bb784df097fbb58f0af6c4f
Parameters: {"rev"=>"862", "action"=>"entry", "id"=>"antics", "controller"=>"repositories", "path"=>["office", "oEnclosures.cgi"]}
Rendering template within layouts/base
Completed in 0.03646 (27 reqs/sec) | Rendering: 0.01483 (40%) | DB: 0.00960 (26%) | 500 Internal Server Error [http://redmine/repositories/entry/antics/office/oEnclosures.cgi?rev=862]
Updated by Dave Winzler almost 16 years ago
One more thing: running under passenger 2.0.5.
Thanks!
Updated by Jean-Philippe Lang almost 16 years ago
- SCM used (including version)
- Redmine version you upgraded from
- and last (but not least) the log with log level set to debug (see config/environment.rb)
Thanks
Updated by Dave Winzler almost 16 years ago
SCM used (including version):
Mercurial 1.0.2
Redmine version you upgraded from:
2008-07-06 v0.7.3
and last (but not least) the log with log level set to debug (see config/environment.rb)
Processing RepositoriesController#diff (for 127.0.0.1 at 2008-12-08 17:48:20) [GET]
Session ID: 6673efe7f7e6666aae3432bf182740c6
Parameters: {"rev"=>"298", "action"=>"diff", "id"=>"sweete", "controller"=>"repositories", "path"=>[]}
[4;35;1mSQL (0.000532)[0m [0mSELECT max(`settings`.updated_on) AS max_updated_on FROM `settings` [0m
[4;36;1mUser Load (0.001037)[0m [0;1mSELECT * FROM `users` WHERE (`users`.`id` = 3) AND (users.status = 1) [0m
[4;35;1mProject Load (0.000870)[0m [0mSELECT * FROM `projects` WHERE (`projects`.`identifier` = 'sweete') LIMIT 1[0m
[4;36;1mRepository Load (0.000754)[0m [0;1mSELECT * FROM `repositories` WHERE (`repositories`.project_id = 3) LIMIT 1[0m
[4;35;1mEnabledModule Load (0.000698)[0m [0mSELECT * FROM `enabled_modules` WHERE (`enabled_modules`.project_id = 3) [0m
[4;36;1mUserPreference Load (0.000552)[0m [0;1mSELECT * FROM `user_preferences` WHERE (`user_preferences`.user_id = 3) LIMIT 1[0m
Cached fragment hit: views/repositories/diff/3/4fa023df94b109151b1051d48b0d48ab (0.00002)
Shelling out: hg -R 'file:///Users/dave/Sites/sweetenergy//' diff -r 297 -r 298 --nodates
Rendering template within layouts/base
[4;35;1mSQL (0.000868)[0m [0mSELECT count(DISTINCT `members`.id) AS count_all FROM `members` LEFT OUTER JOIN `projects` ON `projects`.id = `members`.project_id LEFT OUTER JOIN `roles` ON `roles`.id = `members`.role_id WHERE (`members`.user_id = 3 AND (projects.status=1)) [0m
[4;36;1mProject Load Including Associations (0.001953)[0m [0;1mSELECT `projects`.`id` AS t0_r0, `projects`.`name` AS t0_r1, `projects`.`description` AS t0_r2, `projects`.`homepage` AS t0_r3, `projects`.`is_public` AS t0_r4, `projects`.`parent_id` AS t0_r5, `projects`.`projects_count` AS t0_r6, `projects`.`created_on` AS t0_r7, `projects`.`updated_on` AS t0_r8, `projects`.`identifier` AS t0_r9, `projects`.`status` AS t0_r10, `parents_projects`.`id` AS t1_r0, `parents_projects`.`name` AS t1_r1, `parents_projects`.`description` AS t1_r2, `parents_projects`.`homepage` AS t1_r3, `parents_projects`.`is_public` AS t1_r4, `parents_projects`.`parent_id` AS t1_r5, `parents_projects`.`projects_count` AS t1_r6, `parents_projects`.`created_on` AS t1_r7, `parents_projects`.`updated_on` AS t1_r8, `parents_projects`.`identifier` AS t1_r9, `parents_projects`.`status` AS t1_r10 FROM `projects` LEFT OUTER JOIN `projects` parents_projects ON `parents_projects`.id = `projects`.parent_id INNER JOIN members ON projects.id = members.project_id WHERE ((`members`.user_id = 3) AND ((projects.status=1))) [0m
Rendered layouts/_project_selector (0.00716)
[4;35;1mSQL (0.000490)[0m [0mSELECT count() AS count_all FROM `versions` WHERE (`versions`.project_id = 3) [0m
[4;36;1mWiki Load (0.000507)[0m [0;1mSELECT * FROM `wikis` WHERE (`wikis`.project_id = 3) LIMIT 1[0m
[4;35;1mSQL (0.000352)[0m [0mSELECT count() AS count_all FROM `boards` WHERE (`boards`.project_id = 3) [0m
Completed in 0.03475 (28 reqs/sec) | Rendering: 0.01491 (42%) | DB: 0.00861 (24%) | 500 Internal Server Error [http://redmine/repositories/diff/sweete?rev=298]
Updated by Jean-Philippe Lang almost 16 years ago
Thanks. And what does this command gives when you run it from your Redmine server:
hg -R 'file:///Users/dave/Sites/sweetenergy//' diff -r 297 -r 298 --nodates
Updated by Dave Winzler almost 16 years ago
Thanks, Jean-Philippe. It outputs this:
--- a/cgi-bin/a_lib.pm +++ b/cgi-bin/a_lib.pm @@ -1714,7 +1714,7 @@ my $date = shift; my($m, $d, $y) = split '/', $date; - return 0 unless $m and $d and $y; # 9/28/04 check for bad dates + return 0 unless $m>0 and $d>0 and $y>0; # 9/28/04 check for bad dates $y += 1900 if $y < 1900; # 1/19/05 handle unix years my($M, $D, $Y) = split '/', today(); @@ -2615,7 +2615,7 @@ #------------------------------------------------------------------------ # getCouponDescription -# +# 12/07/08 now handles multi-level coupons #------------------------------------------------------------------------ sub getCouponDescription { @@ -2623,75 +2623,137 @@ chomp $couponLine; - my($code, $startDate, $endDate, $minOrder, $discount, $freestock) = split "\t", $couponLine; - - if ($freestock eq 'FJA-F') { - $freestock = 'Sample of our best Apricots'; - } - - my $text; - if ($discount) { - $discount = dollarOf($discount) unless $discount =~ m/\%/; - $text .= "Get $discount off your order"; - } - elsif ($freestock) { - $text .= "Get a free $freestock"; - } [going on for 1300+ lines, ending with] + return strtoupper(substr($text, 0, 1)) . substr($text, 1) . $good; + +} + + ?> \ No newline at end of file
Updated by Jean-Philippe Lang almost 16 years ago
It looks fine. Can you check that the user that runs redmine has read access on your repository?
Updated by Dave Winzler almost 16 years ago
The repository is world-readable, so redmine should be able to read it. Actually, redmine CAN read it, since the repository tab displays the latest changesets, and clicking on a changeset displays the files in it. It's only when I try to see the differences that I run into problems.
This is on a Mac, if that makes a difference.
Thanks for looking into this,
- d
Updated by Jean-Philippe Lang almost 16 years ago
redmine CAN read it, since the repository tab displays the latest changesets, and clicking on a changeset displays the files in it.
Changesets and files changes are stored in the database, that's why they are properly displayed.
Updated by Dave Winzler almost 16 years ago
Changesets and files changes are stored in the database, that's why they are properly displayed.
OK, that makes sense then. Anyway, the repository is world-readable, and nothing has changed on the repository end since Redmine 0.7.3. Any ideas why 0.8 is having problems with it? Anything else I can check on my end?
Updated by Jean-Philippe Lang almost 16 years ago
To see what happens when redmine calls hg:
- apply this patch in order to capture hg errors:
Index: lib/redmine/scm/adapters/abstract_adapter.rb =================================================================== --- lib/redmine/scm/adapters/abstract_adapter.rb (revision 2094) +++ lib/redmine/scm/adapters/abstract_adapter.rb (working copy) @@ -172,7 +172,7 @@ def self.shellout(cmd, &block) logger.debug "Shelling out: #{cmd}" if logger && logger.debug? begin - IO.popen(cmd, "r+") do |io| + IO.popen("#{cmd} 2>#{RAILS_ROOT}/log/scm.stderr.log", "r+") do |io| io.close_write block.call(io) if block_given? end
- clear tmp/cache directory of the app
- restart the app
- try to browse or display a diff and see what you've got in
log/scm.stderr.log
Updated by Dave Winzler almost 16 years ago
Bingo, that showed me that HG_BIN wasn't set correctly. Now that I fixed that path it's working like a charm!
Thanks for all your help, Jean-Philippe!
Updated by Jean-Philippe Lang almost 16 years ago
- Status changed from New to Closed
- Affected version (unused) deleted (
0.8.0-RC1)
OK, thanks for the feedback.
Updated by JANIAUT Valentin almost 16 years ago
I had the same problem, and I applied the patch and I get the following output :
Traceback (most recent call last):
File "/home/valeuf/bin/hg", line 11, in ?
from mercurial import demandimport; demandimport.enable()
ImportError: No module named mercurial
Any Idea ?