Svn 如何区分Subversion中的普通提交和合并?

Svn 如何区分Subversion中的普通提交和合并?,svn,merge,hook,Svn,Merge,Hook,我正在研究SVN存储库挂钩。 以下是存储库的典型结构: trunk/ branches/ branch1/ branch2/ 在预提交钩子中,我需要检测是否执行了合并(在分支之间,从分支到主干,反之亦然),并检查用户是否有权执行合并 我发现merge更改了目标目录的“svn:mergeinfo”属性。因此,我必须解析提交更改集,检测dir的属性更改,并检查自上次提交以来“svn:mergeinfo”属性是否已更改 这一切似乎太复杂了。是否有更方便的方法来检测合并?在我看来,检测

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

trunk/
branches/
    branch1/
    branch2/
在预提交钩子中,我需要检测是否执行了合并(在分支之间,从分支到主干,反之亦然),并检查用户是否有权执行合并

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


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

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

您无法区分预提交中的“svn commit”和“svn merge”命令?否。
svn merge
甚至不执行提交
svn commit
应该单独调用。这也是我找到的唯一方法!