实现 Git 目录权限控制

本文探讨了Git与Subversion在目录权限控制上的差异,指出Git原生不支持目录权限控制,而Subversion则可以实现。文章提出了一种通过服务端钩子`update`来检测和阻止修改只读目录的方案,并分享了实现思路和代码示例。最后,作者反思过度使用Git服务端钩子可能带来的问题和建议采用其他协作模式来规避权限控制需求。
摘要由CSDN通过智能技术生成

附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读书籍书单大全:

书单导航页(点击右侧 极客侠栈 即可打开个人博客):极客侠栈
【Java】学习之路吐血整理技术书从入门到进阶最全50+本(珍藏版)
【算法数据结构+acm】从入门到进阶吐血整理书单50+本(珍藏版)
【数据库】从入门到进阶必读18本技术书籍网盘吐血整理网盘(珍藏版)
【Web前端】从HTML到JS到AJAX到HTTP从框架到全栈帮你走更少弯路(珍藏版)   
【python】书最全已整理好(从入门到进阶)(珍藏版)

【机器学习】+python整理技术书(从入门到进阶已经整理好)(珍藏版)
【C语言】推荐书籍从入门到进阶带你走上大牛之路(珍藏版)
【安卓】入门到进阶推荐书籍整理pdf书单整理(珍藏版)

【架构师】之路史诗级必读书单吐血整理四个维度系列80+本书(珍藏版)

【C++】吐血整理推荐书单从入门到进阶成神之路100+本(珍藏)

【ios】IOS书单从入门到进阶吐血整理(珍藏版)

--------------------------------------------------------------------------------------------------------------------

前言

Git 与 Subversion 有诸多不同,最核心的一点是前者属于分布式版本控制工具,后者属于集中式版本控制工具。前者的提交行为是离线的,本地的,后者的提交是在线的,需要与远程中央服务器通信,在线创建提交。基于这种现实,Git 和 Subversion 在原生提供的附加功能也存在很大的差别。比如目录权限控制。Git 原生并不支持目录权限控制,而 Subversion 支持。

Subversion 的目录权限控制

用户接入远程服务器上的 Subversion 存储库通常可以使用 HTTP 协议 SVN 协议以及 SVN+SSH 协议,HTTP 协议本质上是 HTTP 客户端与 Apache httpd 服务器通信,此时,请求由 mod_dav_svn.so 模块处理,然后调用 subversion 的核心模块,包括文件系统和存储库模块。使用 HTTP 访问 Subversion 存储库时,可以如下:

svn co https://llvm.org/svn/llvm-project/llvm/trunk

还可以直接检出存储库的子目录:

svn co https://llvm.org/svn/llvm-project/llvm/trunk/include/

使用 SVN 协议与 SVN+SSH 协议本质上都是与远程服务器上的 svnserve 通信,前者是 svnserve 监听 3690 TCP 端口,后者是在远程服务器上运行 svnserve -t,但内部的细节都是一致的。检出代码如下:

svn co svn://llvm.org/svn/llvm-project/llvm/trunk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值