Svn 某些提交未调用提交后钩子

Svn 某些提交未调用提交后钩子,svn,Svn,我们使用post-commit钩子将文件从源复制到目标(源和目标是存储库的根文件夹)。 文件夹。如果将属性(property name:version)应用于源代码下的任何文件夹,我们将从post-commit.bat调用python脚本来进行复制 我们在复制时面临一个问题,一些文件夹没有从源复制到目标。 我们通过以下步骤发现了问题, 在python脚本的开头,我们记录了每次提交时日志文件的修订号和更改路径。 但对于某些两个文件夹,日志文件中没有属性集条目(修订号和更改的路径)。 (请注意,在p

我们使用post-commit钩子将文件从源复制到目标(源和目标是存储库的根文件夹)。 文件夹。如果将属性(property name:version)应用于源代码下的任何文件夹,我们将从post-commit.bat调用python脚本来进行复制

我们在复制时面临一个问题,一些文件夹没有从源复制到目标。 我们通过以下步骤发现了问题, 在python脚本的开头,我们记录了每次提交时日志文件的修订号和更改路径。 但对于某些两个文件夹,日志文件中没有属性集条目(修订号和更改的路径)。 (请注意,在post-commit.bat中,我们只调用了python脚本,没有其他调用)。 当我们第二次尝试时,这两个文件夹的属性条目在日志文件中可用,并且文件已成功复制到目标文件夹


提交后钩子有没有不被调用的情况?

提交后钩子应该一直被调用,但由于某些原因,提交后钩子可能会失败,如果提交后钩子的用户没有告诉您,您可能永远也不会知道。毕竟,就用户而言,提交完成了,他们只是收到了一些不太重要的错误消息

现在,很抱歉,你在干什么?您是否将文件从一个Subversion目录复制到另一个目录,然后提交这些更改?如果是这样,您如何防止post-commit钩子第二次触发。如果是这种情况,那么可能是您的genius系统(用于防止在无限循环中触发post-commit钩子)导致了问题

即使您没有这样做,创建一个post-commit钩子来做一些可能需要几秒钟以上的事情也不是一个好主意。在post commit挂钩完成之前,提交无法完成。如果post-commit钩子运行需要10秒,那么用户必须坐在那里思考到底发生了什么

最好使用CI系统,例如为您创建发行版。Jenkins的设置很简单,可以为您处理post-commit,而无需在post-commit-hell中占用用户的提交过程。如果由于某种原因,提交后流程失败,Jenkins可以通过电子邮件提醒您该问题。Jenkins用户界面完全基于web,开发人员很容易检查提交后流程的历史记录