Mercurial > hgsubversion
view tests/test_push_eol.py @ 899:7f90bb48c9de
svn verify: use a custom editor and get_revision()
Previously, we would fetch each file in the revision/changeset
individually. With this change, we fetch the entire revision in one
request, and use a custom editor to verify its contents. This is quite
a lot faster than the previous means when verifying over the internet.
By an order of magnitude or two, in fact. As data is transfered in a
single operation, verifying a revision from PyPy took 30 seconds
rather than 30 minutes, and saturated my 10Mbps connection.
Please note that the output ordering isn't stable between the two;
output will appear in reverse order when using the fast verifier.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Wed, 14 Dec 2011 00:07:58 +0100 |
parents | 04729f3a3d17 |
children | d741f536f23a |
line wrap: on
line source
import test_util import unittest class TestPushEol(test_util.TestBase): def setUp(self): test_util.TestBase.setUp(self) self._load_fixture_and_fetch('emptyrepo.svndump') def _test_push_dirs(self, stupid): changes = [ # Root files with LF, CRLF and mixed EOL ('lf', 'lf', 'a\nb\n\nc'), ('crlf', 'crlf', 'a\r\nb\r\n\r\nc'), ('mixed', 'mixed', 'a\r\nb\n\r\nc\nd'), ] self.commitchanges(changes) self.pushrevisions(stupid) self.assertchanges(changes, self.repo['tip']) changes = [ # Update all files once, with same EOL ('lf', 'lf', 'a\nb\n\nc\na\nb\n\nc'), ('crlf', 'crlf', 'a\r\nb\r\n\r\nc\r\na\r\nb\r\n\r\nc'), ('mixed', 'mixed', 'a\r\nb\n\r\nc\nd\r\na\r\nb\n\r\nc\nd'), ] self.commitchanges(changes) self.pushrevisions(stupid) self.assertchanges(changes, self.repo['tip']) def test_push_dirs(self): self._test_push_dirs(False) def test_push_dirs_stupid(self): self._test_push_dirs(True) def suite(): all_tests = [unittest.TestLoader().loadTestsFromTestCase(TestPushEol), ] return unittest.TestSuite(all_tests)