Mercurial > hgsubversion
view tests/test_fetch_symlinks.py @ 960:502613f6b583
editor: ignore added or copied files excluded by a filemap
Files brought by a copied add_directory() were processed despite being
excluded by the filemap. This was also the case with added files. The
conversion was still correct because they were eventually filtered out
in the replay.convert_rev() but processing them in itself may be
problematic. Filemaps are often use to exclude large binary files and
before this change, some of them could be marked as missing and be
fetched before being discarded.
A test configuration entry named hgsubversion.failoninvalidreplayfile
was added to help testing this case. It should become the default
behaviour in the future.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sun, 14 Oct 2012 15:51:12 +0200 |
parents | bd12a4da0f35 |
children | d741f536f23a |
line wrap: on
line source
import test_util import unittest class TestFetchSymlinks(test_util.TestBase): def test_symlinks(self, stupid=False): repo = self._load_fixture_and_fetch('symlinks.svndump', stupid=stupid) # Check symlinks throughout history links = { 0: { 'linka': 'a', 'linka2': 'a', 'd/linka': 'a', }, 1: { 'linkaa': 'a', 'linka2': 'a', 'd2/linka': 'a', }, 2: { 'linkaa': 'b', 'linka2': 'a', 'd2/linka': 'b', }, 3: { }, 4: { 'linka3': 'a', }, 5: { 'linka3': 'a', }, 6: { 'linka3': 'a', 'linka4': 'link to this', }, } for rev in repo: ctx = repo[rev] for f in ctx.manifest(): l = 'l' in ctx[f].flags() lref = f in links[rev] self.assertEqual(lref, l, '%r != %r for %s@%r' % (lref, l, f, rev)) if f in links[rev]: self.assertEqual(links[rev][f], ctx[f].data()) for f in links[rev]: self.assertTrue(f in ctx) def test_symlinks_stupid(self): self.test_symlinks(True) class TestMergeSpecial(test_util.TestBase): def test_special(self): repo = self._load_fixture_and_fetch('addspecial.svndump', subdir='trunk') ctx = repo['tip'] self.assertEqual(ctx['fnord'].flags(), 'l') self.assertEqual(ctx['exe'].flags(), 'x') def suite(): all_tests = [ unittest.TestLoader().loadTestsFromTestCase(TestFetchSymlinks), unittest.TestLoader().loadTestsFromTestCase(TestMergeSpecial), ] return unittest.TestSuite(all_tests)