将Fogbugz与TortoiseSVN集成,不需要URL / Subversion后端

我已经安装了TotroiseSVN,并且我的大部分存储库都从C:\ subversion \ 检入和检出,还有一对从网络共享中检入和检出(当我最初发布此问题时,我忘记了这一点)的。

这意味着我没有“颠覆”服务器本身。

我如何整合TortoiseSVN和Fogbugz?

编辑:插入斜体

0
额外 编辑
意见: 1
这个网址有帮助吗? << a href =“http://www.fogcreek.com/FogBugz/docs/40/Articles/SourceControl/TortoiseSVN.html>”rel =“nofollow noreferrer”> fogcreek.com/FogBugz/docs/40/Articles/SourceControl /&hellip; ;
额外 作者 Pat,
如果你刚到这里 - Fogbugz现在整合了Mercurial--他们称之为窑。托管版本对<3个用户是免费的。
额外 作者 CAD bloke,

5 答案

这个答案是不完整的和有缺陷的!它只能从TortoisSVN到Fogbugz,但不是相反。我仍然需要知道如何让它从Fogbugz反向工作(就像它的设计),以便我可以看到Fogbugz在查看错误时遇到的错误修正号。


有用的URL

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-挖propertypage.html

http://tortoisesvn.net/issuetracker_integration


设置“钩子”

  1. Go into your fogbugz account and click Extras > Configure Source Control Integration

  2. Download "post-commit.bat" and the VBScript file for Subversion

  3. Create a "hooks" directory in a common easily accessed location (preferably with no spaces in the file path)

  4. Place a copy of the files in the hooks directories

  5. Rename the files without the ".safe" extension

  6. Right click on any directory.

  7. Select "TortoiseSVN > Settings" (in the right click menu from the last step)

  8. Select "Hook Scripts"

http://www.chomperstomp.com/img/tortoiseSVNSettings.png

  1. Click "Add"

  2. Set the properties thus:

    • Hook Type: Post-Commit Hook

    • Working Copy Path: C:\\Projects (or whatever your root directory for all of your projects is. If you have multiple you will need to do this step for each one.)

    • Command Line To Execute: C:\\subversion\\hooks\\post-commit.bat (this needs to point to wherever you put your hooks directory from step 3)

    • I also selected the checkbox to Wait for the script to finish...

警告:不要忘记双反斜杠! “\\”</强>

点击确定...

注意:截图不同,请按照文件路径的文本,而不是截图...

在这一点上,你似乎可以点击“问题跟踪器集成”并选择Fogbugz。不。它只是返回“没有可用的问题跟踪提供程序”。

  1. 点击“确定”关闭整体 设置对话窗口

配置属性

  1. Once again, Right click on the root directory of the checked out project you want to work with (you need to do this "配置属性" step for each project -- See "在项目之间迁移属性" below)

  2. Select "TortoiseSVN > Properties" (in the right click menu from the last step)

  3. Add five property value pairs by clicking "New..." and inserting the following in "Property Name" and "Property Value" respectively:

bugtraq:label BugzID:
bugtraq:message BugzID: %%BUGID%%

bugtraq:number true

bugtraq:url http://[your fogbugz URL here]/default.asp?%BUGID%

bugtraq:warnifnoissue false

properties window adding new property

  1. 点击“确定”

提交更改并查看日志

现在,当您提交时,您可以指定提交地址的一个错误。这种迫使你在修正每个bug后提交...

When you view the log (Right click root of project, TortoiseSVN > show log) you can see the bug id that each checking corresponds to (1), and you can click the bug id number to be taken to fogbugz to view that bug automatically if you are looking at the actual log message. Pretty nifty!

http://www.chomperstomp.com/img/viewLog.png


在项目之间迁移属性

  1. Right click on a project that already has the proper Properties configuration

  2. Select "TortoiseSVN > Properties" (from the right-click menu from step 1)

  3. Highlight all of the desired properties

  4. Click "Export"

  5. Name the file after the property, and place in an easily accessible directory (I placed mine with the hooks files)

  1. 右键单击需要设置属性的已签出项目的根目录。

  2. 点击“导入”

  3. 选择上面第4步中导出的文件

  4. 点击打开

0
额外

为什么你不能简单地安装一个颠覆服务器?如果您下载免费的 VisualSVN服务器,则会为您的源代码获取一个http服务器,并且可以从而使用FogBugz脚本来整合这两者。

我问的原因是因为到目前为止所有的脚本和文档都假设你有服务器,客户端脚本对于FogBugz来说是太新了,因为它们为它们提供了模板,所以你几乎可以放在自己的设备上。

0
额外

我不知道我跟着你。你在网络上还是在C:\驱动器上安装了存储库?根据你的两个帖子,你有两个或两个都没有,或者他们中的一个或...

您无法使VisualSVN或Apache从网络共享安全地提供存储库。由于您最初表示您的C:\驱动器上有存储库,因此您可以获得建议。如果你有不同的设置,你需要告诉我们这个。

如果你的本地硬盘上有版本库,我会安装VisualSVN,或者将它集成到Apache中。 VisualSVN可以和Apache一起运行,所以如果你走这条路线,你只需要安装它。您现有的存储库也可以复制到VisualSVN的存储库根目录中,然后启动并运行。

我不确定为什么这里的大帖子被标记为不完整,因为它详细说明了设置钩子脚本以通知FogBugz关于与案例相关的新修订的步骤,这些修改应该是 消息说它不这样做。这不行吗?

0
额外
我的C:\驱动器上有一堆存储库,有几个存储在网络共享中。点是,我有乌龟,我没有Subversion,我还能如何使它工作?
额外 作者 cmcculloh,
我的解决方案不完整,因为它只能以单向方式工作按照设计的方式工作,当您提交更改时,您输入一个fogbugz案例编号。然后,在查看颠覆日志时,案例编号将成为fogbugz的可点击链接。
额外 作者 cmcculloh,
在fogbugz网站上查看fogbugz的情况下,应该有一个针对该情况的颠覆检查列表。现在我的解决方案将在Subversion(乌龟)日志中创建链接,但不会在fogbugz页面上创建链接。
额外 作者 cmcculloh,

问题是FogBugz会链接到一个网页,file:///等不是一个网页。要通过两种方式进行集成,您需要一个用于Subversion存储库的Web服务器。要么设置Apache或其他可以以适当方式托管这些东西的其他东西。

0
额外

我一直在调查这个问题,并设法让它工作。有几个小问题,但他们可以解决。

这个问题有三个不同的部分,如下所示:

  1. <�强>的TortoiseSVN部分</强> - 让TortoiseSVN的插入错误ID和超链接在SVN的日志

  2. <�强>的部分的FogBugz </强> - 得到的FogBugz插入SVN信息和相应的链路

  3. <�强>的WebSVN部分</强> - 确保从FogBugz的链接的实际工作

第1部分的说明在另一个答案中,尽管它实际上超出了要求。关于钩子的东西实际上是针对第2部分的,正如所指出的那样 - “开箱即用”

为了确认,我们正在考虑使用TortoiseSVN WITHOUT SVN服务器(即基于文件的存储库)

我正在使用UNC路径访问存储库,但它也适用于本地驱动器或映射驱动器。

所有这些都适用于TortoiseSVN v1.5.3和SVN Server v1.5.2(您需要安装SVN服务器,因为第2部分需要在服务器包中包含 svnlook.exe 。您实际上并未配置它作为SVN服务器工作)甚至可以从另一台计算机复制 svnlook.exe ,并将其放置在您的路径中的某个位置。

第1部分 - TortoiseSVN

创建TortoiseSVN属性是获得SVN日志中链接所需的全部内容。

以前的说明可以正常工作,为方便起见,我会在此引用他们

Configure the Properties

  1. Right click on the root directory of the checked out project you want to work with.

  2. Select "TortoiseSVN -> Properties"

  3. Add five property value pairs by clicking "New..." and inserting the following in "Property Name" and "Property Value" respectively: (make sure you tick "Apply property recursively" for each one)

    bugtraq:label    BugzID:
    bugtraq:message  BugzID: %BUGID%
    bugtraq:number   true
    bugtraq:url      http://[your fogbugz URL here]/default.asp?%BUGID%
    bugtraq:warnifnoissue   false
    
  4. Click "OK"

如Jeff所说,您需要为每个工作副本执行此操作,因此请按照其说明迁移属性。

而已。当您提交时,TortoiseSVN现在会添加一个链接到相应的FogBugz bugID。如果这就是你想要的,你可以在这里停下来。

第2部分 - FogBugz

为了这个工作,我们需要设置钩子脚本。基本上这个批处理文件在每次提交之后都会调用,然后调用提交给FogBugz的VBS脚本。 VBS脚本在这种情况下实际运行良好,所以我们不需要修改它。

问题是批处理文件被写入为一个服务器钩子,但我们需要一个客户端钩子。

SVN服务器使用这些参数调用post-commit hook:

 

TortoiseSVN使用这些参数调用post-commit hook:

     

所以这就是为什么它不起作用 - 参数是错误的。我们需要修改批处理文件,以便将正确的参数传递给VBS脚本。

您会注意到TSVN不会传递存储库路径,这是一个问题,但它在以下情况下仍然有效:

  • 存储库名称和工作副本名称相同
  • 您在工作副本的根目录下执行提交,而不是子文件夹。

我要去看看我能否解决这个问题,如果我这样做会回来。

这是我修改的批处理文件,它可以工作(请原谅过多的评论...)

您需要设置钩子和存储库目录以匹配您的设置。

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      
rem   The ones we're interested in are  and  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

我将假设这些存储库位于 \\ myserver \ svn \ 中,并且工作副本都在`C:\ Projects \

  1. Go into your FogBugz account and click Extras -> Configure Source Control Integration

  2. Download the VBScript file for Subversion (don't bother with the batch file)

  3. Create a folder to store the hook scripts. I put it in the same folder as my repositories. eg. \\myserver\svn\hooks\

  4. Rename VBscript to remove the .safe at the end of the filename.

  5. Save my version of the batch file in your hooks directory, as post-commit-tsvn.bat

  6. Right click on any directory.

  7. Select "TortoiseSVN > Settings" (in the right click menu from the last step)

  8. Select "Hook Scripts"

  9. Click "Add" and set the properties as follows:

    • Hook Type: Post-Commit Hook

    • Working Copy Path: C:\Projects (or whatever your root directory for all of your projects is.)

    • Command Line To Execute: \\myserver\svn\hooks\post-commit-tsvn.bat (this needs to point to wherever you put your hooks directory in step 3)

    • Tick "Wait for the script to finish"

  10. Click OK twice.

如果你提交并输入一个错误ID下一次,将提交给FogBugz的。该链接将无法工作,但至少修改信息是那里,你可以手动查找日志中的TortoiseSVN的。

注意:您会注意到存储库根被硬编码到批处理文件中。因此,如果您从不具有相同根目录的存储库签出(例如,本地驱动器和网络上有一个),则需要在TSVN中的钩子脚本下使用2个批处理文件和2个对应条目设置。做到这一点的方法是拥有2个独立的工作副本树 - 每个存储库根目录一个。

第3部分 - WebSVN

Errr,我没有这样做:-)

从阅读WebSVN文档看来,WebSVN似乎并没有真正与SVN服务器集成,它只是像其他任何SVN客户端一样运行,但提供了一个Web界面。理论上,它应该可以在基于文件的存储库中正常工作。我还没有尝试过。

0
额外