diff options
-rw-r--r-- | app/models/repository/git.rb | 7 | ||||
-rw-r--r-- | test/unit/repository_git_test.rb | 16 |
2 files changed, 23 insertions, 0 deletions
diff --git a/app/models/repository/git.rb b/app/models/repository/git.rb index 602dba898..7532bcd6a 100644 --- a/app/models/repository/git.rb +++ b/app/models/repository/git.rb @@ -194,6 +194,13 @@ class Repository::Git < Repository end private :save_revision + def heads_from_branches_hash + h1 = extra_info || {} + h = h1.dup + h["branches"] ||= {} + h['branches'].map{|br, hs| hs['last_scmid']} + end + def latest_changesets(path,rev,limit=10) revisions = scm.revisions(path, nil, rev, :limit => limit, :all => false) return [] if revisions.nil? || revisions.empty? diff --git a/test/unit/repository_git_test.rb b/test/unit/repository_git_test.rb index 0e2d16ebc..c40f4df14 100644 --- a/test/unit/repository_git_test.rb +++ b/test/unit/repository_git_test.rb @@ -244,6 +244,22 @@ class RepositoryGitTest < ActiveSupport::TestCase assert_equal 0, @repository.extra_info["db_consistent"]["ordering"] end + def test_heads_from_branches_hash + assert_nil @repository.extra_info + assert_equal 0, @repository.changesets.count + assert_equal [], @repository.heads_from_branches_hash + h = {} + h["branches"] = {} + h["branches"]["test1"] = {} + h["branches"]["test1"]["last_scmid"] = "1234abcd" + h["branches"]["test2"] = {} + h["branches"]["test2"]["last_scmid"] = "abcd1234" + @repository.merge_extra_info(h) + @repository.save + @project.reload + assert_equal ["1234abcd", "abcd1234"], @repository.heads_from_branches_hash.sort + end + def test_latest_changesets assert_equal 0, @repository.changesets.count @repository.fetch_changesets |