废话不说 配置钩子吧
首先在apache的www目录下创建一个文件夹,进行checkout,输入需要用户名和密码,将项目取出到该文件夹中。我的是svn文件夹(必不可少)
右键点击 Repositories中的项目
点击所有任务
选择 Manage Hooks…
双击Commit下面的Post-commit hook
把下文中的命令填写进去
找到SVN Server的Repositories目录,在Repositories/test/hooks文件夹中创建post-commit.bat,在其中写入命令:
"C:\ProgramFiles\VisualSVNServer\bin\svn.exe" update "D:\www\test" --quiet --username name --password pwd
"C:\ProgramFiles\VisualSVNServer\bin\svn.exe" update "D:\www\test" --quiet --username name --password pwd
(即执行svn update命令,请自行替换用户名和密码)
@echo offSETREPOS=%1SETUSER=%2SETSVN="C:/Program Files/VisualSVN Server/bin/svn.exe"SETDIR="D:/WWW/svn"(call%SVN%update%DIR% --username 你的账号--password 你的密码 --non-interactive)
echo offSETREPOS=%1SETUSER=%2SETSVN="C:/Program Files/VisualSVN Server/bin/svn.exe"SETDIR="D:/WWW/svn"(call%SVN%update%DIR% --username 你的账号--password 你的密码 --non-interactive)
大功告成。
注:
1.web目录下一定要用TortoiseSVN checkout出Repositories的代码
2.-username izaodao –password izaodao
izaodao替换为登录svn的用户名和密码
在使用中可能会遇到的错误排除:
Error: svn: 解析“D:\www\test”出错,或svn: E020024: Error resolving case of ‘D:\www\test”’,则有可能是因为目标文件名之后多加了”\”
“D:\www\test”或Skipped ‘d:\www\test’,则可能是因为没有执行步骤提交更新处理文件 即上面提到的.bat文件,svn.exe不认识目标文件夹
Working copy ‘D:\www\test’ is too old,则可能需要使用sven.exe upgrade命令重新整理一下目标文件夹 或者重新安装一个较高客户端版本至少要2.6以上吧
还有一个注意问题——Visual SVN Server的权限,否则可能会出现下列错误:
post-commit hook failed (exit code 1) with output:
svn: E155004: Working copy ‘D:\www\Test’ locked
svn: E200031: sqlite: attempt to write a readonly database
svn: E200031: sqlite: attempt to write a readonly database
svn: run ‘svn cleanup’ to remove locks (type ‘svn help cleanup’ for details)
原因是Visual SVN Server服务的执行权限不够,不能对指定目录做读写操作。解决办法,修改Visual SVN Server
简单操作 win+R 运行 services.msc 找到visual svn server 服务 右键属性 登陆面板 设置桌面交互或者管理员权限再试
网友评论