关于SVN限制填写备注和自动更新代码到网站的研究
2013-05-10 15:20
351 查看
好久没有写博客了,工作已经差不多半年。朝七晚七地生活,空闲的时间很少。
为了补充自己,上班的时候也偷偷研究下新技术。
今天花了大半天的时间来解决SVN的问题。其中关键的两个方面是:一是限制用户填写备注后才可以
提交更新。二是利用SVN同步代码到测试机的Web服务器上,让代码同步更新。
首先是第一个问题:
遇到不懂的问题就是度娘和谷哥,查好多资料。发现一共才几行代码就搞定了。
不过,没有经历过错误的方法就找不到正确的方法。下面是解决该问题的方案:
第一步、在项目的Hooks目录下新一个pre-commit.bat文件。此文件是在用户提交更新时
可以执行的脚本。
第一步:在pre-commit.bat文件内输入下面的内容
setlocal
set REPOS=%1
set TXN=%2
set SVNLOOK="C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe"
REM Make sure that the log message contains some text.
FOR /F "usebackq delims==" %%g IN (`%SVNLOOK% log -t %TXN% %REPOS% `) DO goto NORMAL_EXIT
:ERROR_TOO_SHORT
echo "the log message can not be null " >&2
goto ERROR_EXIT
:ERROR_EXIT
exit /b 1
REM All checks passed, so allow the commit.
:NORMAL_EXIT
exit 0
有个别地方需要根据自己的文件路径更改下。
然后第二个问题的解决方案:
第一步将HTTPS连接方式更改为HTTP连接方式。可百度下怎么修改。
第二步将SVN的登录方式修改为管理权限的用户登录,如下图:
第三步在Hooks文件上新建一个post-commit.bat的文件,文件内有内容如下 :
@echo off
"C:\Program Files (x86)\VisualSVN Server\bin\svn.exe" update "D:\webcode\CRM_Code" –username admin85 –password 123
路径和登录账号、密码要修改下。代码就这么简单。
经测试,我在Windows系统上实现正常,如有不明白的可以和我深入讨论。
svn允许日志可以修改
SET REPOS="%1"
SET REV="%2"
SET USER="%3"
SET PROPNAME="%4"
SET ACTION="%5"
IF %ACTION% == "M" (IF %PROPNAME% == "svn:log" (EXIT 0))
ECHO "Changing revision properties %PROPNAME% is prohibited" >&2
EXIT 1
为了补充自己,上班的时候也偷偷研究下新技术。
今天花了大半天的时间来解决SVN的问题。其中关键的两个方面是:一是限制用户填写备注后才可以
提交更新。二是利用SVN同步代码到测试机的Web服务器上,让代码同步更新。
首先是第一个问题:
遇到不懂的问题就是度娘和谷哥,查好多资料。发现一共才几行代码就搞定了。
不过,没有经历过错误的方法就找不到正确的方法。下面是解决该问题的方案:
第一步、在项目的Hooks目录下新一个pre-commit.bat文件。此文件是在用户提交更新时
可以执行的脚本。
第一步:在pre-commit.bat文件内输入下面的内容
setlocal
set REPOS=%1
set TXN=%2
set SVNLOOK="C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe"
REM Make sure that the log message contains some text.
FOR /F "usebackq delims==" %%g IN (`%SVNLOOK% log -t %TXN% %REPOS% `) DO goto NORMAL_EXIT
:ERROR_TOO_SHORT
echo "the log message can not be null " >&2
goto ERROR_EXIT
:ERROR_EXIT
exit /b 1
REM All checks passed, so allow the commit.
:NORMAL_EXIT
exit 0
有个别地方需要根据自己的文件路径更改下。
然后第二个问题的解决方案:
第一步将HTTPS连接方式更改为HTTP连接方式。可百度下怎么修改。
第二步将SVN的登录方式修改为管理权限的用户登录,如下图:
第三步在Hooks文件上新建一个post-commit.bat的文件,文件内有内容如下 :
@echo off
"C:\Program Files (x86)\VisualSVN Server\bin\svn.exe" update "D:\webcode\CRM_Code" –username admin85 –password 123
路径和登录账号、密码要修改下。代码就这么简单。
经测试,我在Windows系统上实现正常,如有不明白的可以和我深入讨论。
svn允许日志可以修改
SET REPOS="%1"
SET REV="%2"
SET USER="%3"
SET PROPNAME="%4"
SET ACTION="%5"
IF %ACTION% == "M" (IF %PROPNAME% == "svn:log" (EXIT 0))
ECHO "Changing revision properties %PROPNAME% is prohibited" >&2
EXIT 1
相关文章推荐
- 关于SVN限制填写备注和自动更新代码到网站的研究
- 让SVN自动更新代码中的版本号
- Linux下svn文件提交后自动同步更新到网站目录
- Linux搭建SVN服务器及服务端代码自动更新
- 让SVN自动更新代码注释中的版本号
- SVN设置钩子文件限制提交文件时必须填写更新日志
- MFC 关于自动更新问题的解决方案和代码
- BAT-SVN自动更新代码目录
- 利用crontab 自动更新svn代码
- SVN自动更新服务器代码
- 自动更新svn代码到运行环境的shell脚本
- 关于代码阅读问题的小技巧 脚本之家原创(适合所有网站)不定时更新
- SVN自动更新,并更改所有者为www的python代码
- Linux CentOS SVN 设置钩子hooks/post-commit来同步更新服务器web目录,实现代码自动部署
- Centos6.5 搭建 SVN 服务器 及 钩子同步更新网站代码
- 关于组件化开发中常用到的svn,cocoapods代码管理工具错误解决办法(持续更新)
- 利用crontab自动更新SVN代码
- web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份
- JENKINS+SVN+ANT+TOMCAT持续集成,实现代码更新自动部署
- 联创802.1x客户端完美版-去多网卡限制,去链接后自动打开网站,去自动更新警告