cmc*_*loh 16 svn fogbugz tortoisesvn integration
我已经安装了TotroiseSVN并且我的大多数存储库都是从C:\ subversion\检查进出的,还有一对来自网络共享的进出检查(我最初发布这个问题时忘记了这一点).
这意味着我本身没有"subversion"服务器.
我如何整合TortoiseSVN和Fogbugz?
编辑:插入斜体
And*_*dge 18
我一直在研究这个问题,并设法让它运作起来.有一些小问题,但它们可以解决.
这个问题有3个不同的部分,如下:
TortoiseSVN部分 - 让TortoiseSVN在svn日志中插入Bugid和超链接
FogBugz部分 - 让FogBugz插入SVN信息和相应的链接
WebSVN部分 - 确保FogBugz的链接实际工作
第1部分的说明在另一个答案中,尽管它实际上超过了要求.关于钩子的东西实际上是第2部分,正如所指出的那样 - 它不起作用"开箱即用"
为了确认,我们正在考虑使用TortoiseSVN 而不使用SVN服务器(即基于文件的存储库)
我正在使用UNC路径访问存储库,但它也适用于本地驱动器或映射驱动器.
所有这些都适用于TortoiseSVN v1.5.3和SVN Server v1.5.2(您需要安装SVN服务器,因为第2部分需要svnlook.exe
服务器包中.您实际上并不将其配置为SVN服务器)它甚至可能可以svnlook.exe
从另一台计算机上复制并将其放在路径中的某个位置.
只需创建TortoiseSVN属性即可获取SVN日志中的链接.
以前的说明工作正常,为方便起见,我会在这里引用它们:
配置属性
右键单击要使用的签出项目的根目录.
选择"TortoiseSVN - >属性"
单击"新建..."并分别在"属性名称"和"属性值"中插入以下内容,添加五个属性值对:(确保为每个属性值勾选"递归应用属性")
Run Code Online (Sandbox Code Playgroud)bugtraq:label BugzID: bugtraq:message BugzID: %BUGID% bugtraq:number true bugtraq:url http://[your fogbugz URL here]/default.asp?%BUGID% bugtraq:warnifnoissue false
点击"确定"
正如Jeff所说,您需要为每个工作副本执行此操作,因此请按照他的说明迁移属性.
而已.TortoiseSVN现在将在您提交时添加指向相应FogBugz bugID的链接.如果这就是你想要的,你可以在这里停下来.
为此,我们需要设置钩子脚本.基本上每次提交后都会调用批处理文件,而这又会调用提交给FogBugz的VBS脚本.VBS脚本在这种情况下实际上工作正常,所以我们不需要修改它.
问题是批处理文件被编写为服务器挂钩,但我们需要一个客户端挂钩.
SVN服务器使用以下参数调用post-commit钩子:
<repository-path> <revision>
Run Code Online (Sandbox Code Playgroud)
TortoiseSVN使用以下参数调用post-commit钩子:
<affected-files> <depth> <messagefile> <revision> <error> <working-copy-path>
Run Code Online (Sandbox Code Playgroud)
这就是为什么它不起作用 - 参数是错误的.我们需要修改批处理文件,以便将正确的参数传递给VBS脚本.
您会注意到TSVN没有通过存储库路径,这是一个问题,但它确实在以下情况下工作:
我要看看我是否可以解决这个问题,如果我这样做,我会回复这里.
这是我修改后的批处理文件,它可以正常工作(请原谅过多的评论...)
您需要设置hook和repository目录以匹配您的设置.
rem @echo off
rem SubVersion -> FogBugz post-commit hook file
rem Put this into the Hooks directory in your subversion repository
rem along with the logBugDataSVN.vbs file
rem TSVN calls this with args <PATH> <DEPTH> <MESSAGEFILE> <REVISION> <ERROR> <CWD>
rem The ones we're interested in are <REVISION> and <CWD> which are %4 and %6
rem YOU NEED TO EDIT THE LINE WHICH SETS RepoRoot TO POINT AT THE DIRECTORY
rem THAT CONTAINS YOUR REPOSITORIES AND ALSO YOU MUST SET THE HOOKS DIRECTORY
setlocal
rem debugging
rem echo %1 %2 %3 %4 %5 %6 > c:\temp\test.txt
rem Set Hooks directory location (no trailing slash)
set HooksDir=\\myserver\svn\hooks
rem Set Repo Root location (ie. the directory containing all the repos)
rem (no trailing slash)
set RepoRoot=\\myserver\svn
rem Build full repo location
set Repo=%RepoRoot%\%~n6
rem debugging
rem echo %Repo% >> c:\temp\test.txt
rem Grab the last two digits of the revision number
rem and append them to the log of svn changes
rem to avoid simultaneous commit scenarios causing overwrites
set ChangeFileSuffix=%~4
set LogSvnChangeFile=svn%ChangeFileSuffix:~-2,2%.txt
set LogBugDataScript=logBugDataSVN.vbs
set ScriptCommand=cscript
rem Could remove the need for svnlook on the client since TSVN
rem provides as parameters the info we need to call the script.
rem However, it's in a slightly different format than the script is expecting
rem for parsing, therefore we would have to amend the script too, so I won't bother.
rem @echo on
svnlook changed -r %4 %Repo% > %temp%\%LogSvnChangeFile%
svnlook log -r %4 %Repo% | %ScriptCommand% %HooksDir%\%LogBugDataScript% %4 %temp%\%LogSvnChangeFile% %~n6
del %temp%\%LogSvnChangeFile%
endlocal
Run Code Online (Sandbox Code Playgroud)
我将假设存储库处于\\myserver\svn\
工作状态并且工作副本都在`C:\ Projects \下
进入您的FogBugz帐户,然后单击其他 - >配置源代码管理集成
下载Subversion的VBScript文件(不要打扰批处理文件)
创建一个用于存储钩子脚本的文件夹.我把它放在与我的存储库相同的文件夹中.例如.\\myserver\svn\hooks\
重命名VBscript以删除.safe
文件名末尾的.
将我的批处理文件版本保存在hooks目录中,如 post-commit-tsvn.bat
右键单击任何目录.
选择"TortoiseSVN>设置"(在最后一步的右键菜单中)
选择"钩子脚本"
单击"添加"并按如下所示设置属性:
钩子类型:提交后挂钩
工作副本路径:( C:\Projects
或您所有项目的根目录.)
命令行执行:( \\myserver\svn\hooks\post-commit-tsvn.bat
这需要指向您在第3步中放置钩子目录的位置)
勾选"等待脚本完成"
单击确定两次.
下次提交并输入Bugid时,它将被提交给FogBugz.链接不起作用,但至少有修订信息,您可以手动查找TortoiseSVN中的日志.
注意:您会注意到存储库根目录硬编码到批处理文件中.因此,如果您从没有相同根目录的存储库中签出(例如,本地驱动器上的一个和网络上的一个),那么您将需要在TSVN中的Hook脚本下使用2个批处理文件和2个相应的条目设置.这样做的方法是拥有2个单独的工作副本树 - 每个存储库根目录一个.
呃,我还没有这样做:-)
从阅读WebSVN文档来看,似乎WebSVN实际上并没有与SVN服务器集成,它只是表现得像任何其他SVN客户端,但呈现一个Web界面.从理论上讲,它应该可以与基于文件的存储库一起使用.我没有尝试过.
cmc*_*loh 11
这个答案是不完整和有缺陷的!它只适用于TortoisSVN到Fogbugz,但不是相反.我仍然需要知道如何让它从Fogbugz向后工作(就像它设计的那样),以便我可以看到修订版号在Fogbugz查找错误时解决了一个错误.
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-propertypage.html
http://tortoisesvn.net/issuetracker_integration
进入您的fogbugz帐户,然后单击其他>配置源代码管理集成
下载"post-commit.bat"和Subversion的VBScript文件
在常见的易于访问的位置创建"钩子"目录(最好在文件路径中没有空格)
将文件的副本放在hooks目录中
重命名没有".safe"扩展名的文件
右键单击任何目录.
选择"TortoiseSVN>设置"(在最后一步的右键菜单中)
选择"钩子脚本"
点击"添加"
因此设置属性:
钩子类型:提交后挂钩
工作副本路径:C:\\项目(或所有项目的根目录.如果您有多个,则需要为每个项目执行此步骤.)
要执行的命令行:C:\\ subversion \\ hooks \\ post-commit.bat(这需要指向从第3步开始放置hooks目录的位置)
我还选中了等待脚本完成的复选框...
警告:不要忘记双背斜线!"\\"
单击确定...
注意:屏幕截图不同,请按照文件路径的文字,而不是截图...
此时,您似乎可以单击"问题跟踪器集成"并选择Fogbugz.不.它只返回"没有可用的问题跟踪器提供商".
再次,右键单击要使用的已检出项目的根目录(您需要为每个项目执行"配置属性"步骤 - 请参阅下面的"在项目之间迁移属性")
选择"TortoiseSVN>属性"(在最后一步的右键菜单中)
单击"新建..."并分别在"属性名称"和"属性值"中插入以下内容,添加五个属性值对:
bugtraq:标签BugzID:
bugtraq:消息BugzID:%% BUGID %%bugtraq:数字为真
bugtraq:url http:// [你的雾霾网址] /default.asp?%BUGID%
bugtraq:warnifnoissue false
现在,当您提交时,您可以指定提交所解决的一个错误.这种强制你在修复每个bug后提交...
当您查看日志(右键单击项目的根目录,TortoiseSVN>显示日志)时,您可以看到每个检查对应于(1)的错误ID,您可以单击错误ID号以获取到fogbugz以自动查看该错误如果你正在查看实际的日志消息.太漂亮了!
右键单击已具有正确Properties配置的项目
选择"TortoiseSVN> Properties"(从步骤1的右键菜单中选择)
突出显示所有所需的属性
点击"导出"
在属性后面命名文件,并放在一个易于访问的目录中(我用挂钩文件放在我的目录中)
右键单击需要为其设置属性的已检出项目的根目录.
点击"导入"
选择您在上面的步骤4中导出的文件
单击打开
归档时间: |
|
查看次数: |
4409 次 |
最近记录: |