Mercurial > hgsubversion
view tests/test_svn_pre_commit_hooks.py @ 1023:7a262ecae4f3
svnwrap: use get_file instead of list_props during replay
This patch has an enormous effect on the time taken to import commits
which add many files. Specifically, it makes them much faster for
pulls over the network because it avoids creating a new connection to
subversion for every added file. In my testing, it dropped the time
taken to import a revision that adds ~6500 files from approximately 1
hour to 30 seconds. I believe this test is representative of
real-world performance improvements.
author | David Schleimer <dschleimer@fb.com> |
---|---|
date | Tue, 18 Jun 2013 17:47:37 -0700 |
parents | cf53cfaaa050 |
children | d741f536f23a |
line wrap: on
line source
import os import sys import test_util import unittest from mercurial import hg from mercurial import commands from mercurial import util class TestSvnPreCommitHooks(test_util.TestBase): def setUp(self): super(TestSvnPreCommitHooks, self).setUp() self.repo_path = self.load_and_fetch('single_rev.svndump')[1] # creating pre-commit hook that doesn't allow any commit hook_file_name = os.path.join( self.repo_path, 'hooks', 'pre-commit' ) hook_file = open(hook_file_name, 'w') hook_file.write( '#!/bin/sh\n' 'echo "Commits are not allowed" >&2; exit 1;\n' ) hook_file.close() os.chmod(hook_file_name, 0755) def test_push_with_pre_commit_hooks(self): changes = [('narf/a', 'narf/a', 'ohai',), ] self.commitchanges(changes) self.assertRaises(util.Abort, self.pushrevisions) def suite(): return unittest.findTestCases(sys.modules[__name__])