如何获取SrcSrv中包含的svnindex.cmd脚本来索引包含URI转义空格的源文件?
我最近设置了一个符号服务器,并为我们的构建脚本添加了SrcSrv支持,以便我们可以轻松地从字段调试故障转储,并让WinDbg和/或Visual Studio调试器从我们的Subversion存储库中获取正确版本的源文件。用于编译我们的应用程序的任何特定版本崩溃。
我在构建脚本中添加了一行来调用Debugging Tools for Windows软件包附带的stock
svnindex.cmd
脚本,但是发现脚本存储了包含URI转义字符(如空格)的存储库文件路径,因此WinDbg无法下载文件来自存储库。
请注意,svnindex.cmd
(特别是它开始的svn.pm
Perl脚本)从svn info
命令的输出获取源文件的存储库位置,并且svn
URI-转储存储库路径。当svnindex.cmd
遇到这个时,它会破坏路径。例如,它将转向路径
"http://mysvnrepo/My%20Application/trunk/Database%20Layer/OracleAdapter.cs"
成
"http://mysvnrepo/My20Layer/OracleAdapter.cs"
事实证明,SrcSrv将“%”之间的任何内容解释为它在运行时替换的变量名。
假设重命名我们的存储库中的所有目录以删除空格和其他将被URI转义的“特殊”字符是不可行的,我该如何解决这个限制?
没有找到相关结果
已邀请:
1 个回复
埠仙俊
运行的Perl脚本,以将源服务器元数据嵌入到PDB文件中。 如果您有WinDbg 6.11.0001.404,则此文件位于Windows调试工具安装目录下的
目录中(例如,在我的机器上,它位于
)。在旧版本的WinDbg中,此文件低于
。在我的例子中,我在构建服务器上编辑了
的副本,因为构建服务器实际上是调用
。 我的解决方案是在脚本进一步处理之前简单地取消URI转义的文件路径。在
循环之后,我将以下行添加到
子程序中,该循环以注释
开头。我在该循环的右括号之后添加了这些行(我的copy2ѭ副本中的第206行):
这解决了这个问题,并允许我在我的开发机器上提取运行WinDbg的完整源代码。