windows下文件名是不区分大小写,但svn是区分大小写的,所以svn在windows下会因这个原因而导致一些问题发生。
可以使用svn的一个官方脚本 case-insensitive.py 里解决这个问题,这是一个hook-scripts, 这个脚本在每次提交代码时 不分大小写地判断文件是否已存在。
用法:
- 当然要安装python, 把安装目录添加到 Path环境目录
- 从http://subversion.tigris.org/tools_contrib.html 这里下载 case-insensitive.py脚本
- 把 case-insensitive.py 放到版本库的 hooks目录
- 在hook目录 编写pre-commit.bat 文件
pre-commit.bat 文件如下:
@echo off
python E:/riag/svn_repo/test/hooks/case-insensitive.py %1 %2
if errorlevel 1 goto :ERROR
exit 0
:ERROR
echo Error found in commit 1>&2
exit 1
注意,pre-commit.bat 里的case-insensitive.py的路径必须是绝对路径,不能使用相对路径。
还有,把case-insensitive.py脚本里的65行代码去掉,因为这行会出错。但不知去掉这行代码会不会影响到其他地方。
65行代码如下:
locale.setlocale(locale.LC_ALL, 'en_GB')