]> source.dussan.org Git - redmine.git/commitdiff
scm: mercurial: use to_s for revision in find_changeset_by_name method
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 23 Feb 2012 12:18:30 +0000 (12:18 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 23 Feb 2012 12:18:30 +0000 (12:18 +0000)
On Rails 3.0.11, functional test fails.

<pre>
Error: test_diff_two_revs(RepositoriesMercurialControllerTest)
NoMethodError: undefined method `empty?' for 4:Fixnum
app/models/repository/mercurial.rb:76:in `find_changeset_by_name'
</pre>

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8938 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/repository/mercurial.rb

index e40841f203cd9a7dd7df399330817b4e3ec1bbeb..391c4466f779bcdeabb39217dc46b595f3f30082 100644 (file)
@@ -73,14 +73,15 @@ class Repository::Mercurial < Repository
 
   # Finds and returns a revision with a number or the beginning of a hash
   def find_changeset_by_name(name)
-    return nil if name.nil? || name.empty?
-    if /[^\d]/ =~ name or name.to_s.size > 8
-      e = changesets.find(:first, :conditions => ['scmid = ?', name.to_s])
+    return nil if name.blank?
+    s = name.to_s
+    if /[^\d]/ =~ s or s.size > 8
+      e = changesets.find(:first, :conditions => ['scmid = ?', s])
     else
-      e = changesets.find(:first, :conditions => ['revision = ?', name.to_s])
+      e = changesets.find(:first, :conditions => ['revision = ?', s])
     end
     return e if e
-    changesets.find(:first, :conditions => ['scmid LIKE ?', "#{name}%"])  # last ditch
+    changesets.find(:first, :conditions => ['scmid LIKE ?', "#{s}%"])  # last ditch
   end
 
   # Returns the latest changesets for +path+; sorted by revision number