【问题标题】:How to distinguish ordinary commit and merge in Subversion?Subversion中如何区分普通commit和merge?
【发布时间】:2011-03-06 17:40:46
【问题描述】:

我正在研究 SVN 存储库挂钩。 下面是典型的存储库结构:

trunk/
branches/
    branch1/
    branch2/

在预提交挂钩中,我需要检测是否已执行合并(分支之间,从分支到主干,反之亦然),并检查用户是否有权执行合并。

我发现合并更改了目标目录的 'svn:mergeinfo' 属性。因此,我必须解析提交变更集,检测 dir 的属性更改并检查自上次提交以来 'svn:mergeinfo' 属性是否已更改。

这一切似乎太复杂了。有没有更方便的检测合并的方法?

【问题讨论】:

  • pre-commit中的“svn commit”和“svn merge”命令分不清?
  • 没有。 svn merge 甚至不执行提交。 svn commit 应该单独调用。

标签: svn merge hook


【解决方案1】:

在我看来,检测 svn:mergeinfo 属性的变化是区分它的唯一方法。当然,您还必须确保您的提交不是来自不创建 mergeinfo 的 pre-v1.5 客户端。

【讨论】:

  • 这也是我找到的唯一方法!
猜你喜欢
  • 2018-03-27
  • 1970-01-01
  • 2014-09-20
  • 2012-01-03
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 2021-04-17
相关资源
最近更新 更多