发新话题
打印

[求助] 强制提交日志无效?( 此文章被查看:577次,被回复:9篇!! )

强制提交日志无效?

公司刚开始使用svn开发人员总是忘记在提交代码时填写日志信息,我看到有介绍提交强制提交日志的方法,就试了试,但都无效,闹不清楚为啥不生效? 希望有人能指点一二,在此谢过!!
我分别使用以下方法:
方法一:
修改svn服务器项目下hooks文件夹下的pre-commit.tmpl,修改后文件修改为可执行属性,并重启apache,我修改的内容如下:
REPOS="$1"
TXN="$2"
RES="OK"
# Make sure that the log message contains some text.
SVNLOOK=/usr/local/subversion/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | egrep  "[^[:space:]]+" >/dev/null  || unset RES

  if [ "$RES" != "OK" ]
  then      
            echo "You must input some comments for your commit" >&2   
            exit 1
   fi

方法二:
通过TortoiseSvn,在本地副本中,选择项目,右键选择TortoiseSvn,选择属性,添加tsvn:logminsize,将值限定为10,点击OK。

但是这两种方法都不能使得强制提交日志生效。



© 本文为 lilyshuiSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

方法2 我这成功了 不知道为什么



© 本文为 wangwenSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
子曰:唯变更乃不变也
子曰:唯进度与美女难追也
子在川上曰:BUG如斯乎

TOP

可我试了好多次,就是不知道为啥不行?
按说操作没错呀!



© 本文为 lilyshuiSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

方法二是肯定可以的.
方法一很多人配置不成功,原因是:
1.pro-commit这个脚本的权限一定要让apache运行账号有可执行权限,本身还必须加为可执行文件.
2.hooks执行时,所有环境变量是丢失的,为了安全吧.所以所有命令都需要绝地路径.

祝你成功.

© 本文为 liuwg8018 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

方法二在我多次试验后,成功了,找到不生效的原因了:添加了logminsize属性后,要将本地工作副本commit一下。

方法一我要继续试试看,谢谢楼上的祝福!

© 本文为 lilyshui 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

我来帮你解决问题

引用:
原帖由 lilyshui 于 2008-5-16 16:15 发表
公司刚开始使用svn,开发人员总是忘记在提交代码时填写日志信息,我看到有介绍提交强制提交日志的方法,就试了试,但都无效,闹不清楚为啥不生效? 希望有人能指点一二,在此谢过!!
我分别使用以下方法:
方法一 ...
  各位朋友们好,看到各位有这些问题,我也碰到过,但经过我的研究,终于解决了这样的问题!

  SVN提交日志信息,是养成工作的一个好习惯,但很多Coding人员为了偷懒为了省时间,都不愿去填写短短的几行日志信息,给配置管理员和相应的组成员造成了很多不必要的麻烦,SVN里就可以强制提交日志信息,养成一个好习惯.

下面就讲讲我的配置方法:
SVN 默认没有提供这样的功能,需要自己去配置实现这样的功能,需要通过钩子脚本实现!

创建一个SVN版本库后,会生成五个文件目录,其中就有一个hooks目录,你需要自己写钩子脚本,放到这个目录下,就可以实现功能了.

如下一断代码:

@echo off
set SVN_BINDIR=D:\Subversion\bin
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 10 characters
%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo Empty log message not allowed. Commit aborted! 1>&2
exit 1

将上面的代码另存为 pre-commit.bat 放到版本库的hooks目录下即可实现强制提交日志信息的功能.

:第二行代码里,换成自己本地的SVN安装目录即可.

与各位交流分享,希望高手指导!

© 本文为 yjg021 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
每天进步一点点!

TOP

第二种方法只对本机的TSVN生效吧?我试了,别人的TSVN还是没有受到限制的。不知道是不是使用有问题。

© 本文为 danceingfish 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

我试过了,第二种方法,如楼上的所说。
第一种方法,没通过。总是提示错误。LZ,请问可以贴图吗?并写明SVN服务器是在win还linux?谢谢!!!

© 本文为 ice_deng 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

方法二需要COMMIT是不假,但COMMIT以后好像还是针对此客户端,其它人的还是没变

© 本文为 callmechen 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 yjg021 于 2008-6-4 17:20 发表



  各位朋友们好,看到各位有这些问题,我也碰到过,但经过我的研究,终于解决了这样的问题!

  SVN提交日志信息,是养成工作的一个好习惯,但很多Coding人员为了偷懒为了省时间,都不愿去填写短短的几行日志 ...
您使用的是SVNServe作为SVN服务的对么? 我用的就是SVNServe,您说的方法确实可以

© 本文为 qunsheng_83 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题