3

我正在寻找一种在构建时从 TFS 工作区提取变更集编号或修订号信息的方法,同时可能从 TFS 服务器脱机。

具体问题如下。我正在尝试将跨平台(Linux/g++/make 和 Windows/VS2010)C++ 代码库从 SVN 移植到 TFS。作为构建过程的一部分,Makefile(在 Linux 端)或 VS 构建属性设置为自动创建一个“版本”文件,其中包含 svnversion 或 SubWCRev 命令的过滤输出。此信息不仅用于报告主要可执行文件的修订号和修改状态,还用于报告构建并用于链接的组件静态库。

一个复杂的问题是我们的 TFS 服务器在 VPN 的末端处于另一种状态,并且不可靠。能够在未连接到 TFS 服务器的情况下在本地构建代码非常重要。TF 命令行工具,据我所知,坚持尝试建立连接,或者报告我没有访问远程资源的权限。

当前的 VS/TortoiseSVN 方法只有一个自定义构建步骤(在“PreBuildEvent”之后执行),它调用 SubWCRev 然后过滤输出以使其与 svnversion 的输出兼容,最后将其写入头文件:

set bv=$(IntDir)\$(ProjectName)_bv.h
SubWCRev "$(SolutionDir)\..\$(ProjectName)" | sed "s/:/ /g" | gawk "/revision/ {r=%24(NF)} /modifications/ {m=\"M\"} END {print \"#define $(ProjectName)_bv \\\"\" r m \"\\\"\"}" > "%bv%.tmp"
fc "%bv%" "%bv%.tmp" 2>nul >nul || copy "%bv%.tmp" "%bv%"

任何人都可以提供与间歇连接的 TFS 一起使用的类似直接解决方案吗?

任何帮助深表感谢!

4

0 回答 0