Mercurial > hgsubversion
view tests/test_fetch_truncated.py @ 1422:372afb75f465
maps: add the "branchmaxrevnum" method to RevMap
Iterating the RevMap can be very expensive for large repos. To prevent future
code from iterating the possibly huge RevMap causing performance issues, it's
a good idea to clean all iterating code outside RevMap.
This patch adds a method used by "get_parent_svn_branch_and_rev".
In the future, we will have a SqliteRevMap, which will have an efficient
implementation for this query, and it will disable "__iter__" to prevent
future performance issues.
author | Jun Wu <quark@fb.com> |
---|---|
date | Sat, 14 May 2016 20:33:57 +0100 |
parents | 825fd4c0396c |
children |
line wrap: on
line source
import test_util import unittest from mercurial import commands from mercurial import hg class TestFetchTruncatedHistory(test_util.TestBase): stupid_mode_tests = True def test_truncated_history(self): # Test repository does not follow the usual layout repo_path = self.load_svndump('truncatedhistory.svndump') svn_url = test_util.fileurl(repo_path + '/project2') commands.clone(self.ui(), svn_url, self.wc_path, noupdate=True) repo = hg.repository(self.ui(), self.wc_path) # We are converting /project2/trunk coming from: # # Changed paths: # D /project1 # A /project2/trunk (from /project1:2) # # Here a full fetch should be performed since we are starting # the conversion on an already filled branch. tip = repo['tip'] files = tip.manifest().keys() files.sort() self.assertEqual(files, ['a', 'b']) self.assertEqual(repo['tip']['a'].data(), 'a\n')