标签: svnlook

在预提交脚本中检测分支重新集成或合并

在预提交脚本中,是否有可能(如果是,如何)识别源自svn merge?的提交?

svnlook changed ... 显示已更改的文件,但不区分合并和手动编辑.

理想情况下,我还想区分标准mergemerge --reintegrate.

背景:

我正在探索使用预提交挂钩来为我们的项目强制执行SVN使用策略的可能性.

其中一个策略声明某些目录(例如/trunk)不应直接修改,只能通过功能分支的重新集成进行更改.因此,预提交脚本将拒绝除分支重新集成之外对这些目录所做的所有更改.

有任何想法吗?


更新:

我已经探索过这个svnlook命令,而我最接近的就是检测并解析svn:mergeinfo对目录属性的更改.这种方法有一些缺点:

  1. svnlook可以标记属性的更改,但不会更改哪个属性.(需要使用proplist前一版本的差异)
  2. 通过检查更改svn:mergeinfo,可以检测svn merge已运行的更改.但是,无法确定提交是否纯粹是合并的结果.合并后手动进行的更改将不会被检测到.(相关帖子:针对另一个路径/修订版的Diff事务树)

svn svn-merge pre-commit-hook svnlook svn-merge-reintegrate

12
推荐指数
1
解决办法
1521
查看次数

SVN命令行:svnlook历史mypath,无法打开文件

我使用此命令显示提交的历史记录.

svnlook history -r 2 mypath

我明白了

svnlook: Can't open file 'mypath/format': No such file or directory

我确信"mypath"是正确的.我也尝试进入更深层次的目录.我尝试使用绝对和相对路径,我尝试使用-r选项但没有,但我总是得到相同的结果.

svn svnlook

8
推荐指数
1
解决办法
8994
查看次数