在post-commit钩子中区分移动,重命名和正常的添加/删除操作

时间:2014-05-15 16:41:31

标签: svn svn-hooks post-commit-hook

我需要配置一个提交后挂钩,它会将重命名操作标识为电子邮件中的重命名。

值得关注的是,我们能够将它们识别为删除和删除。添加操作,但我们需要将其作为单个重命名操作。

移动操作也是如此,内部视为复制/删除操作。

有关svn属性可用于此目的的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在post-commit hook中你有两种可能性

选择1

解析普通svn log的输出以进行提交修订

>svn log -v -q -r HEAD
------------------------------------------------------------------------
r3 | Badger | 2014-05-16 10:46:29 +0600 (Пт, 16 май 2014)
Changed paths:
   D /trunk/A.txt
   D /trunk/B.txt
   A /trunk/C.txt (from /trunk/A.txt:2)
   A /trunk/D.txt
------------------------------------------------------------------------

(此处A.txt使用svn mv重命名为C.txt,B.txt仅使用OS命令移入D.txt)

选择1

因为它是存储库端操作,所以使用svnlook(更紧凑,无噪音的输出)

>svnlook changed --copy-info z:\Repo
D   trunk/A.txt
D   trunk/B.txt
A + trunk/C.txt
    (from trunk/A.txt:r2)
A   trunk/D.txt