annotate tests/test_push_eol.py @ 787:4bbc6bf947f5 1.2.1

replay: fetch full revision at most once per run (issue252) Before this change, hgsubversion was fetching full revisions from the first revision the project was created to the first revision containing converted data. Unfortunately, some projects exhibits such spans longer than 500 revisions, during which hgsubversion was uselessly scanning the whole tree. The fix is not technically perfect, we could record somewhere that while no data was converted we scanned the project already, instead of scanning once at every hgsubversion run until a revision is converted. But it should be good enough unless someone runs hgsubversion once for every target revision. One repository exhibiting this behaviour: svn://svn.zankasoftware.com/zanka
author Patrick Mezard <pmezard@gmail.com>
date Sun, 13 Feb 2011 20:10:52 +0100
parents d2ef7220a079
children 312b37bc5e20
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
642
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
1 import test_util
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
2
643
d2ef7220a079 tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 642
diff changeset
3 import unittest
d2ef7220a079 tests: import test_util as the first module in all relevant tests
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 642
diff changeset
4
642
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
5 class TestPushEol(test_util.TestBase):
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
6 def setUp(self):
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
7 test_util.TestBase.setUp(self)
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
8 test_util.load_fixture_and_fetch('emptyrepo.svndump',
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
9 self.repo_path,
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
10 self.wc_path)
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
11
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
12 def _test_push_dirs(self, stupid):
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
13 changes = [
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
14 # Root files with LF, CRLF and mixed EOL
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
15 ('lf', 'lf', 'a\nb\n\nc'),
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
16 ('crlf', 'crlf', 'a\r\nb\r\n\r\nc'),
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
17 ('mixed', 'mixed', 'a\r\nb\n\r\nc\nd'),
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
18 ]
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
19 self.commitchanges(changes)
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
20 self.pushrevisions(stupid)
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
21 self.assertchanges(changes, self.repo['tip'])
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
22
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
23 changes = [
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
24 # Update all files once, with same EOL
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
25 ('lf', 'lf', 'a\nb\n\nc\na\nb\n\nc'),
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
26 ('crlf', 'crlf', 'a\r\nb\r\n\r\nc\r\na\r\nb\r\n\r\nc'),
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
27 ('mixed', 'mixed', 'a\r\nb\n\r\nc\nd\r\na\r\nb\n\r\nc\nd'),
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
28 ]
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
29 self.commitchanges(changes)
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
30 self.pushrevisions(stupid)
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
31 self.assertchanges(changes, self.repo['tip'])
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
32
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
33 def test_push_dirs(self):
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
34 self._test_push_dirs(False)
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
35
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
36 def test_push_dirs_stupid(self):
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
37 self._test_push_dirs(True)
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
38
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
39 def suite():
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
40 all = [unittest.TestLoader().loadTestsFromTestCase(TestPushEol),
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
41 ]
c2d606a1dc6f tests: get rid of DOS line endings.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 96
diff changeset
42 return unittest.TestSuite(all)