我主要想在执行svn提交时动态更改我的默认提交模板(svn-commit.tmp)。 我从论坛上得知,设置SVN_EDITOR会有所帮助
setenv SVN_EDITOR "rm svn-commit.tmp && cp $REPO/hooks/log.tmpl svn-commit.tmp && emacs"
但只有当用户在其用户环境中设置SVN_EDITOR
时,才会发生这种情况。
那么还有其他明确的方式,当我进行svn提交时,我将从不同的位置而不是默认位置打开模板文件。提交模板将更具体到存储库和提交日期。那么有一种方法可以在svn存储库上设置一些属性来调用不同的提交模板。
我应该对所有人(特定于存储库)强制执行它,它不应该像用户那样设置SVN_EDITOR。即使我们设置SVN_EDITOR
,当我们通过调用一些钩子来执行svn提交时,也可以调用此设置。我明白pre&只有在提交提交后才会调用post commit钩子。
我们只使用svn命令客户端。
答案 0 :(得分:4)
有两种可能的方法,具体取决于您必须使用的subversion客户端:
当您查看TortoiseSVN帮助的“Client Side Hook Scripts”一章时,您会看到以下部分:
开始提交
在显示提交对话框之前调用。如果钩子修改了版本化文件并影响了需要提交和/或提交消息的文件列表,则可能需要使用此方法。但是您应该注意,因为钩子是在早期调用的,所以选择用于提交的对象的完整列表不可用。
钩子有以下参数:
因此,您可以根据目录实现一个小脚本来更改svn提交模板。但是,您必须关心如何部署客户端挂钩,因为每个用户都必须自己安装它们。
template-file
)上定义svn属性,并从起始目录向上搜索具有该svn属性集的目录。但是,您还必须在客户端上安装该脚本。 Subversion中没有允许使用不同模板而无需在客户端上进行额外安装的机制。
答案 1 :(得分:0)
这是我创造的一个。如果它存在,它会尝试使用TortoiseSVN模板,否则它会在全局Git配置中查找模板文件,否则它会回退到内置模板。
请注意,使用标准的TortoiseSVN模板属性并不意味着您必须安装TortoiseSVN。