Hi
I have a problem with the check-case-insensitive.py pre-commit hook script on Windows. Adding a folder to the root of the repository or to a large folder (like the root folder of our main project) takes a long time (I stopped it after over an hour).
We are normally the repository over http. I made a test using the file: protocol and pressed Ctrl+C after a while to get this python traceback:
----------
E:\SvnRepos\Chromeleon>svn mkdir file:///E:/SvnRepos/Playground/test -m "test"
svn: 'pre-commit' hook failed with error output:
Traceback (most recent call last):
File "E:\ServerTools\check-case-insensitive.py", line 305, in ?
core.run_app(CheckCase, os.path.normpath(sys.argv[1]), sys.argv[2])
File "E:\Python24\Lib\site-packages\svn\core.py", line 217, in run_app
return apply(func, (_core.application_pool,) + args, kw)
File "E:\ServerTools\check-case-insensitive.py", line 232, in __init__
tree = self.look.cmd_tree(changedroot)
File "E:\ServerTools\check-case-insensitive.py", line 92, in cmd_tree
return self._print_tree(Editor, rootpath, base_rev=0)
File "E:\ServerTools\check-case-insensitive.py", line 126, in _print_tree
e_ptr, e_baton, authz_cb, 0, 1, 0, 0, self.pool)
File "E:\Python24\Lib\site-packages\libsvn\repos.py", line 223, in svn_repos_dir_delta
return apply(_repos.svn_repos_dir_delta, args)
File "E:\Python24\Lib\site-packages\svn\delta.py", line 57, in apply_textdelta
def apply_textdelta(self, file_baton, base_checksum):
KeyboardInterrupt
Error found in commit
----------
I think this is a bug, as only a single folder name has to be checked, but the hook script is apparently walking a large tree (entire repository).
Our environment:
Server:
Apache/2.0.59 (Win32) SVN/1.4.0 DAV/2
SVN version 1.4.0 (r21228)
check-case-insensitive.py r21262 (current)
Clients
svn, version 1.4.0 (r21228)
svn, version 1.4.2 (r22196)
TortoiseSVN 1.4.3, Build 8645
Repository:
5.02 GB
241439 files
120696 revisions
7 folders in the repository root.
pre-commit.bat:
----------
E:\Python24\python E:\ServerTools\check-case-insensitive.py %1 %2
if errorlevel 1 goto :ERROR
E:\Python24\python E:\ServerTools\log-filter.py -t %2 %1
if errorlevel 1 goto :ERROR
exit 0
:ERROR
echo Error found in commit 1>&2
exit 1
----------
ciao
Martina
Received on Thu Mar 15 16:46:38 2007