首页 / 知识
如何在Windows环境中用Trac和SVN实现提交后挂接?
2023-04-16 15:27:00

How do I implement the Post Commit Hook with Trac & SVN in a Windows Environment?我在带有Trac / SVN的Windows环境中运行,并且我希望提交到存储库以将其集成到Trac中并关闭SVN注释中提到的错误。 我知道有一些后提交钩子可以做到这一点,但是关于如何在Windows上进行操作的信息并不多。 有人成功完成了吗? 您要遵循的步骤是什么? 这是我需要在SVN中放置的钩子,但是我不确定在Windows环境中如何执行此操作。 Trac Post提交挂钩 本杰明的答案很接近,但是在Windows上,您需要为钩子脚本文件提供可执行扩展名,例如.bat或.cmd。我使用.cmd。您可以采用模板脚本(它们是unix shell脚本,shell脚本)并将其转换为.bat / .cmd语法。 但是要回答与Trac集成的问题,请遵循以下步骤。 确保Python.exe在系统路径上。这将使您的生活更轻松。 在\ hooks文件夹中创建post-commit.cmd。这是Subversion将在提交后事件上执行的实际钩子脚本。
在\ hooks文件夹中创建trac-post-commit.cmd:
在\ hooks文件夹中创建trac-post-commit-resolve-ticket-ref.py。我使用了EdgeWall的相同脚本,只是我将其重命名以更好地阐明其用途。 好了,现在我已经花了很多时间在弄清一切之后发布我的经验,并感谢Craig使我走上正确的道路。这是您需要做的(至少在SVN v1.4和Trac v0.10.3中): %?dp0 \ trac-post-commit-hook.cmd%1%2
这里最重要的部分是设置TRAC_ENV,它是存储库根目录的路径(SET TRAC_ENV = C:\ trac \ MySpecialProject) 该脚本中的下一个重要事项是执行以下操作:
如果您在上面的脚本文件中看到,我正在使用svnlook(这是SVN的命令行实用程序)来获取LOG消息和向存储库进行提交的作者。 然后,脚本的下一行实际上是在调用Python代码来执行票证的关闭并解析日志消息。我必须修改它以传递日志消息和作者(我在Trac中使用的用户名与SVN中的用户名相匹配,这很容易)。
脚本中的上述行将把Trac环境,修订版,进行提交的人员以及他们的注释传递到python脚本中。 这是我使用的Python脚本。我在常规脚本之外做的一件事是,我们使用了一个自定义字段(fixed_in_ver),供我们的质量检查小组使用,它可以用来确定他们正在验证的修复程序是否在他们正在质量检查中测试的代码版本中。因此,我修改了python脚本中的代码以更新票证上的该字段。您可以删除不需要的代码,但这是一个很好的示例,说明了您也可以在Trac中更新自定义字段的方法。 我这样做是通过让用户选择在他们的评论中包含以下内容:
然后,我使用与python脚本用于正则??表达式相同的技术来获取信息。还算不错 无论如何,这是我使用的python脚本,希望这是一个很好的教程,准确说明了我如何使其在Windows世界中正常工作,以便大家都可以在自己的商店中使用它。 如果您不想处理我的其他代码来更新自定义字段,请从上面的Craig提到的位置(从Edgewall脚本)中获取基本脚本。
对于所有想要安装最新版本(0.11.5)的Windows用户:
即使您拥有64位Windows,也请下载32位1.5 Python。
当您安装所有必需的东西时,转到存储库文件夹。有文件夹挂钩。
"但是,根据您的trac版本,获取正确的python脚本很重要。要获取适当的版本,SVN请检查以下文件夹: 从那里下载文件" trac-post-commit-hook",并将其放在hooks文件夹中。 在trac-post-commit.cmd中编辑这些行
记住没有最后一个! 我已经从最后一行-r"%REV%"删除了引号,成为-r%REV%,但是我不知道是否需要这样做。现在这将不起作用(至少在我的win 2008服务器上),因为钩子将失败(提交将正常)。这与权限有关。默认情况下,权限是受限制的,我们需要允许python或svn或trac(无论我不知道)更改trac信息。因此,转到您的trac文件夹,project文件夹,db文件夹,右键单击trac.db并选择属性。转到安全性标签并编辑权限,以允许所有人完全控制。这不是很安全,但是我整天都在安全问题上浪费了时间,我不想浪费另一个,只是为了寻找应该为哪个用户启用权限。 希望这可以帮助.... 首先,非常感谢Code Monkey! 但是,根据您的trac版本,获取正确的python脚本很重要。要获取适当的版本,SVN签出文件夹: http://svn.edgewall.com/repos/trac/branches/xxx-stable/contrib 其中xxx对应于您所使用的trac版本,例如:0.11 否则,您将收到如下所示的提交后错误: 提交失败(详细信息如下):'/ svn / project / trunk / web / directory /'的合并:200 OK 我要添加"代码猴子的答案是完美的"一件事-对此要小心(我的错误)
我没有设置非系统路径,花了我一段时间才能看到明显的:D 只要匹配就可以确定没有其他人犯同样的错误!谢谢代码猴子! 1000000000点:D 发布提交挂钩位于"钩子"目录中,而您所在的存储库都位于服务器端。我不知道您在环境中的什么位置,所以这只是一个例子 例如(视窗):
例如(llinux / unix):
|
最新内容
相关内容
linux运行图形界命令?
linux运行图形界命令?,系统,密码,地址,电脑,图形界面,地方,工具,界面,终端,图形,linux图形化界面命令第一种方式比较简单,只需要选择相应的带图linux怎样运行命令?
linux怎样运行命令?,系统,工作,信息,基础,地址,命令,目录,工具,密码,一致,Linux系统基础操作指令1、linux常用命令有pwd命令、cd命令、ls命令linux编译完运行命令?
linux编译完运行命令?,系统,代码,环境,工具,信息,命令,文件,程序,终端,编辑,在linux中编译C输入完程序后输入个:wq然后按什么键就然后就回到了linux提交程序命令行?
linux提交程序命令行?,工作,系统,信息,地址,工程,目录,管理,环境,命令,功能,Linux系统常用操作命令有哪些linux常用命令: pwd命令 该命令的英linux命令程序运行?
linux命令程序运行?,状态,系统,服务,情况,命令,进程,软件,数据,发行,时间,Linux中如何启动进程?进程调度命令有哪些?实现调度启动进程的方法有linux运行多个命令?
linux运行多个命令?,环境,软件,系统,工作,服务,连续,命令,指令,分号,冲突,linux多个用户同时执行命令会冲突吗不会冲突。解释:用户登录linux的linux运行命令查看?
linux运行命令查看?,系统,信息,状态,命令,名称,情况,地址,软件,进程,第一,linux查看进程命令首先打开xshell软件,连接上linux服务器,使用指令pslinux里面的注释命令?
linux里面的注释命令?,地址,系统,名字,工作,命令,信息,代码,基础,情况,底部,Linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目录linux中命令运行软件?
linux中命令运行软件?,软件,系统,名称,工具,电脑,位置,环境,中心,在线,初级,如何用命令行在Linux下安装软件?首先启动CentOS7,在VMware中点击上linux命令注释脚本?
linux命令注释脚本?,代码,工具,名称,工作,脚本,发行,服务,环境,数据,基础,linuxshell编程方法1:sed -i s/被替换的内容/要替换成的内容/ file脚本linux上运行命令?
脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,typescript脚本中怎样运行Linux命令?1、Script可用于记录当前用户linux命令错误的是?
linux命令错误的是?,系统,信息,异常,密码,工具,地址,网络,实时,状态,数据,Linux系统中输入命令,输出结果有误是怎么回事?出现以上提示,很多原因