当用户使用TortoiseSVN和RapidSVN时,他看到的是服务器上的文件,因此可以删除这些文件。我想阻止这种情况发生。也许是为了阻止删除的选项?
为了澄清,我希望从服务器删除文件的唯一方法是用户从其本地驱动器中删除该文件,然后将其提交到服务器。我想限制任何用户直接从服务器上删除的能力。
发布于 2009-07-28 11:33:39
一如既往,试图阻止客户端上的任何事情都是本质上不安全的。您的用户可以始终使用不同的客户端。
因此,您需要在服务器端(在存储库本身中)管理访问权限。不幸的是,据我所知,SVN本身只支持“读”和“写”访问级别。授予某人“写”访问权限意味着用户不仅可以修改现有文件,还可以添加新文件和删除现有文件。
您可以通过预提交钩子添加此功能。
发布于 2018-08-27 17:24:30
通过添加预提交钩子来防止删除。在windows中,这可以通过在"Your_SVN_repository\hooks\“中添加”pre- content .bat“来完成,其内容如下。
@echo off
::
:: Stops commits that have deleted/renamed/moved files/folders.
::
setlocal
rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2
rem check for an delete command in commit
svnlook changed %REPOS% -t %TXN% | findstr /i /m /b D > nul
if %errorlevel% gtr 0 exit 0 else (goto err)
:err
echo. 1>&2
echo Your commit includes files/folder deleted or renamed from repository 1>&2
echo Deletion/Rename is not allowed from repository>&2
echo Please revert the deletion/rename changes 1>&2
exit 1
https://stackoverflow.com/questions/1193222
复制相似问题