scm: mercurial: split Repository::Mercurial#latest_changesets_cond for short and long id (#14361)
git-svn-id: http://svn.redmine.org/redmine/trunk@12751 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
28fbc270fa
commit
6ea2b7a43b
|
@ -100,6 +100,17 @@ class Repository::Mercurial < Repository
|
||||||
all
|
all
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def nodes_in_branch(rev, branch_limit)
|
||||||
|
scm.nodes_in_branch(rev, :limit => branch_limit).collect do |b|
|
||||||
|
b[0, 12]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def tag_scmid(rev)
|
||||||
|
scmid = scm.tagmap[rev]
|
||||||
|
scmid.nil? ? nil : scmid[0, 12]
|
||||||
|
end
|
||||||
|
|
||||||
def latest_changesets_cond(path, rev, limit)
|
def latest_changesets_cond(path, rev, limit)
|
||||||
cond, args = [], []
|
cond, args = [], []
|
||||||
if scm.branchmap.member? rev
|
if scm.branchmap.member? rev
|
||||||
|
@ -114,8 +125,8 @@ class Repository::Mercurial < Repository
|
||||||
# Mercurial does not treat direcotry.
|
# Mercurial does not treat direcotry.
|
||||||
# So, "hg log DIR" is very heavy.
|
# So, "hg log DIR" is very heavy.
|
||||||
branch_limit = path.blank? ? limit : ( limit * 5 )
|
branch_limit = path.blank? ? limit : ( limit * 5 )
|
||||||
args << scm.nodes_in_branch(rev, :limit => branch_limit)
|
args << nodes_in_branch(rev, branch_limit)
|
||||||
elsif last = rev ? find_changeset_by_name(scm.tagmap[rev] || rev) : nil
|
elsif last = rev ? find_changeset_by_name(tag_scmid(rev) || rev) : nil
|
||||||
cond << "#{Changeset.table_name}.id <= ?"
|
cond << "#{Changeset.table_name}.id <= ?"
|
||||||
args << last.id
|
args << last.id
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue