svn是很多企业和个人用的版本控制软件,非常方便。通用的权限控制在auth文件中,但是缺点是权限较大,w的权限一旦赋予,相应用户都可以有删除svn文件的权限,但是如果不赋予w权限,又没办法commit,非常纠结。本文就是通过一个钩子脚本,实现用户有新增修改文件之后commit,但是又不可以删除的权限细化控制,只有制定的某些用户可以做删除动作。

编辑 SVN 目录下 hooks下面pre-commit 代码(没有可以新建)

#2018-1-24 delete by zhuqh
REPOS="$1"
TXN="$2"
SVNLOOK=/XX/XX/svnlook       # whick svnlook

# Make sure that the log message contains some text.
if [ -z `$SVNLOOK log -t "$TXN" "$REPOS" |grep "[a-zA-Z0-9]"` ];then
echo "please add message!" >&2
exit 1
fi
USER=`$SVNLOOK author -t $TXN $REPOS`
ADMINLIST=user1,user2  #username
if [ "`echo $ADMINLIST|grep -w $USER|wc -l`" -eq 0 ];then
if [ `$SVNLOOK changed -t $TXN $REPOS |grep "^D "|wc -l` -gt 0 ];then
# echo "You Don't have the pemmision of delete!Please contact your administrator!" >&2
echo "no auth!" >&2
exit 1
fi
fi
# All checks passed, so allow the commit.
exit 0

记住编辑完pre-commit要赋权限:
chmod +x post-commit

最新文章

  1. react+redux教程(七)自定义redux中间件
  2. html,css命名规范 (转)
  3. div显示滚动条
  4. bnuoj 27874 "Center" of [p]erimeter midpoints(计算几何)
  5. MySQL批处理SQL语句
  6. JavaWeb总结(五)—Cookie
  7. angular2 Http和websocket
  8. C#中委托和事件的区别
  9. Objective-C iOS纯代码布局 一堆代码可以放这里!
  10. jsp和
  11. Unity查找子物体的方式-怎么查找GameObject
  12. [UE4]RPC,远程调用
  13. PhotoSphereViewer 全景图
  14. CentOS 7.x 安装 Docker
  15. javascript unicode与GBK2312(中文)编码转换示例
  16. Ajax第二天——JQuery的Ajax
  17. SQLServer 学习相关资料整理【转】
  18. 感知机PLA算法实现[转载]
  19. 前端基础(jQuery)
  20. 【线段树求区间第一个不大于val的值】Lpl and Energy-saving Lamps

热门文章

  1. weblogic的集群与配置图文方法
  2. DotnetBrowser高级教程-(4)使用MVC框架2-接收与返回模型
  3. GLSL 基础量定义 【转】
  4. MongoDB下载安装測试及使用
  5. 给交换机端口设ip
  6. java 环境变量配置 Mac
  7. AutoCAD2004启动时出现fail to get CommcntrController的怎么办
  8. hibernate oneToMany 缓存
  9. 服务器,数据库连接注意mysql的user表
  10. 图论 Krusal算法C++实现