summaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-02-07 10:25:52 +0000
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-02-07 10:25:52 +0000
commite9ab2de1e79719f832d4fa8b0bbeebbd55d7bc28 (patch)
tree3874f1d483632509fa3f5639c2a63466dee841cf /app/models
parent9c070fe09275cffe8056cd6bd857bbbc38a69015 (diff)
downloadredmine-e9ab2de1e79719f832d4fa8b0bbeebbd55d7bc28.tar.gz
redmine-e9ab2de1e79719f832d4fa8b0bbeebbd55d7bc28.zip
scm: cvs: change temporary revision number from "_N" to "tmpN" (#996, #3761, #6706).
'_' is SQL "like" special character. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4801 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
-rw-r--r--app/models/repository/cvs.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/app/models/repository/cvs.rb b/app/models/repository/cvs.rb
index 3f0e9109c..8ea4f2301 100644
--- a/app/models/repository/cvs.rb
+++ b/app/models/repository/cvs.rb
@@ -117,7 +117,7 @@ class Repository::Cvs < Repository
# we use a temporaray revision number here (just for inserting)
# later on, we calculate a continous positive number
cs = Changeset.create(:repository => self,
- :revision => "_#{tmp_rev_num}",
+ :revision => "tmp#{tmp_rev_num}",
:committer => revision.author,
:committed_on => revision.time,
:comments => revision.message)
@@ -144,11 +144,12 @@ class Repository::Cvs < Repository
# Renumber new changesets in chronological order
changesets.find(
- :all, :order => 'committed_on ASC, id ASC', :conditions => "revision LIKE '_%'"
+ :all, :order => 'committed_on ASC, id ASC', :conditions => "revision LIKE 'tmp%'"
).each do |changeset|
changeset.update_attribute :revision, next_revision_number
end
end # transaction
+ @current_revision_number = nil
end
private
@@ -156,7 +157,9 @@ class Repository::Cvs < Repository
# Returns the next revision number to assign to a CVS changeset
def next_revision_number
# Need to retrieve existing revision numbers to sort them as integers
- @current_revision_number ||= (connection.select_values("SELECT revision FROM #{Changeset.table_name} WHERE repository_id = #{id} AND revision NOT LIKE '_%'").collect(&:to_i).max || 0)
+ sql = "SELECT revision FROM #{Changeset.table_name} "
+ sql << "WHERE repository_id = #{id} AND revision NOT LIKE 'tmp%'"
+ @current_revision_number ||= (connection.select_values(sql).collect(&:to_i).max || 0)
@current_revision_number += 1
end
end