![]() |
1
39
我没有足够的声誉来“评论”Raim上面的回答,但他的工作做得很好,除了一个例外,他的grep模式是错误的。 我只是使用下面的钩子作为我的预提交钩子(我没有现有的钩子,在这种情况下你需要合并):
Raim的grep模式的唯一问题是,它只匹配位于仓库“根”的“标签”。由于我的仓库中有几个项目,他编写的脚本允许在标记分支上进行提交。 此外,一定要按照指示使用chmod+x,否则你会认为它奏效了——b/c提交失败了,但b/c失败了——它无法执行预提交钩子,不是因为钩子奏效了。 这真的很棒,谢谢Raim。比所有其他建议更好、更轻,因为它没有依赖关系! |
![]() |
2
16
以下是一个简短的shell脚本,用于防止在创建标签后提交标签:
将此保存在
|
![]() |
3
7
这是我的windows批处理文件预提交钩子。如果用户是管理员,则将跳过其他检查。它检查提交消息是否为空,以及提交是否指向标签。注意:在其他平台上,findstr是grep的替代品。 它检查提交是否指向标记的方式是,首先检查svnlook changed是否包含“tags/”。然后检查svnlook是否更改了匹配项“^A”。 标签/[^/] /$”,这意味着它将检查您是否在tags/下添加新文件夹。 允许用户创建新项目。预提交钩子允许用户创建trunk/tags/和branches/文件夹。不允许用户删除trunk/tags/和branches/文件夹。这将适用于单个或多个项目存储库。
|
![]() |
4
6
这个anwser比日期晚了很多,但我发现了svnlook-changed命令的--copy info参数。 此命令的输出在第三列中添加了一个“+”,因此您知道这是一个副本。您可以检查对tags目录的提交,并且只允许存在“+”的提交。 我在中添加了一些输出 my blog post . |
![]() |
5
4
聚会很晚了,但我写了一个基于log-policy.py脚本的python预提交钩子 http://subversion.tigris.org/ . 此脚本应该执行您想要的操作,但它也会检查日志消息是否存在,尽管这应该很容易从脚本中删除。 一些注意事项:
要求:
最后,代码:
|
![]() |
6
4
之前编写的大多数脚本都是不完整的,因为有几个案例没有涵盖在内。这是我的剧本:
这可能看起来很复杂,但你必须确保自己
|
![]() |
7
3
接受的答案会阻止更新标记中的文件,但不会阻止向标记中添加文件。以下版本同时处理这两个问题:
|
![]() |
8
1
我的版本只允许创建和删除标签。这应该能处理所有特殊情况(如添加文件、更改属性等)。
|
![]() |
9
1
如果您使用的是JIRA,则可以使用名为 Commit Policy 保护存储库中的路径 无需编写自定义挂钩 . 怎么用?使用名为的条件 Changed files must match a pattern . 它有一个正则表达式类型参数,必须与提交中的每个文件匹配,否则提交将被拒绝。所以,在你的例子中,你应该使用一个正则表达式,意思是“不以前缀/tags/开头”。 (您可以使用同一插件实现许多其他智能检查。) 免责声明:我是一名开发人员,正在开发这个付费插件。 |
![]() |
10
1
由于第一个答案没有阻止添加/支持文件,也没有阻止创建新标签,以及许多其他不完整或有错误的地方,我对其进行了修改 这是我的预提交钩子: 目标是:
---------文件“预提交”(放入存储库 钩 文件夹)---------
---------文件“预提交”结束--------- 此外,我制作了2个shell脚本,在svn的每个项目中复制我的钩子: 将repo设置为只读: ---------脚本“setOneRepoTagsReadOnly.sh”---------
---------文件末尾“setOneRepoTagsReadOnly.sh”--------- 一个是为每个repo调用它,使我的所有repo都是只读的: ---------文件“makeTagsReadOnly.sh”---------
---------文件“makeTagsReadOnly.sh”的末尾--------- 我直接从svn“根”(在我的例子中是/var/svn/repos/svn)执行这些脚本。 顺便说一句,可以设置一个cron任务,通过每天执行这些脚本来自动修改新的存储库 希望它能有所帮助。 |
![]() |
11
0
列出的答案很好,但没有一个完全符合我的要求。我想允许轻松创建标签,但一旦创建,它们应该是完全只读的。 我还想防止这种愚蠢的情况,如果你这样做:
第一次一切都很好。但第二次,如果标签已经存在,你最终会得到
我的预提交钩子将查找任何预先存在的SVN目录匹配项
|
![]() |
Eric · pip安装-e svn+ssh不接受用户 7 年前 |
|
Anu699 · 在git中管理多个项目的最佳方式是什么?[已关闭] 7 年前 |
![]() |
Dipu H · Viewvc未扩展关键字 7 年前 |
![]() |
NealWalters · SVNLook-存储库格式-语法不正确 7 年前 |
![]() |
m-mas · 尝试与svn重新同步trac时出错 7 年前 |
![]() |
Wombattle · 通过命令行在SVN中保留时间戳 7 年前 |