加入收藏 | 设为首页 | Life家族 | SCMLife | RMLife | PMLife | SQALife | TESTLife | 企业VIP专区 | 中文化荣誉殿堂
 
 13 12
发新话题
打印

[原创] Hooks里面对锁的控制( 此文章被查看:1572次,被回复:12篇!! )

本主题由 懂你 于 2008-8-15 10:45 加入精华

Hooks里面对锁的控制

SubversionHooks提供了很好的触发机制
领导给了需求,要求锁管理如下。
1.
任何人不能窃取锁。
pre-commit里面设置
获得锁的拥有者
@echo off
setlocal
set REPOS=%1
set PATH=%2
set USER=%3
set PDIR=C:\WINDOWS\system32
set SDIR=D:\SCM_Program\Subversion\bin

%SDIR%\svnlook.exe lock %REPOS% %PATH% |%PDIR%\sed.exe -n "2p"|%PDIR%\cut.exe -d ":" -f 2|%PDIR%\sed.exe "s/^ //g" > d:\temp\Unlock_Temp.txt&&for /f "tokens=*" %%i in (d:\temp\Unlock_Temp.txt) do
set OwnerUser=%%i&&del d:\temp\Unlock_Temp.txt


if "%OwnerUser%"=="" exit 0 为空 说明没有锁定
if
%OwnerUser% == %USER% exit 0
说明是自己锁定的

if
%OwnerUser% NEQ %USER% GOTO err
其他人锁定 退出


:err
echo %PATH%已经被%OwnerUser%锁定,你无权窃锁,请通知管理员. 1>&2
exit /B 1



抛砖引玉 大家可以自由发挥

[ 本帖最后由 go2cxg 于 2008-8-17 11:54 编辑 ]



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

TOP

很实用的需求,昨天发的,我咋没看到这个贴呢.



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

TOP

公司使用SVN,也在为锁定的事情而烦恼,谢谢LZ,
再请问下,这个是在linux下面的吧.如果是在WIN下面呢?
在客户端用GET LOCK是否可以锁定呢?
目前公司遇到的问题,GET LOCK锁定后,有小部份文件,无法进行锁定.在解锁的时候,又有小部份文件无法解锁.请问为什么呢?



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

TOP

1.我这个就是在windows下面运行的.
2.在客户端用svn lock进行锁定
按道理来说 是可以的 解锁和锁定
但是也出现过类似的情况
本地的锁信息和服务器端的锁信息无法同步

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

TOP

回复 地毯 的帖子

出现部分问价无法锁定、无法解锁的情况以及本地的锁信息和服务器端的锁信息无法同步,是如何解决的?

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

TOP

这个是比较麻烦的问题
往往是前一天锁定的信息
第二天本地的.svn锁的信息就没有了
文件标志左下角的小锁没有了
正在想办法解决

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

TOP

在锁了之后,本地和服务器还做了其他的操作么?是不是其他的操作影响了.svn的信息同步?
不明白,期待小光的进一步挖掘

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

TOP

这个钩子真的启作用吗?有谁试用过,我这里用不了啊。从程序看,好像只是告诉你有人锁定了,不能提交,但是仍然可以break lock 破坏锁,而执行下一步阿? 钩子中的sed.exe,cut.exe 是什么程序,在C:\WINDOWS\system32中没有看到这两个程序。

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

TOP

1.我这里只是写了大概的步骤
需要自己去组织语言和代码
2.已经实现了
3.sed cut都是UNIX下面的程序 需要去找WIN32版的程序 拷贝到本地.
可以安装cygwin

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

TOP

能否提供一个完整的钩子脚本,是pre-commit.bat,还是pre-lock.bat,pre-unlock.bat。我觉得需要有一个pre-unlock.bat才可以真正阻止别人解锁,否则应该仍然可以steal lock吧,我用的是tortoisesvn 客户端。谢谢!

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

TOP

 13 12
发新话题