我正在寻找一种在构建时从TFS工作区提取变更集编号或修订号信息的方法,同时可能从TFS服务器脱机。
具体问题如下。我试图将一个跨平台(Linux / g ++ / make和Windows / VS2010)C ++代码库从SVN移植到TFS。作为构建过程的一部分,Makefile(在Linux端)或VS构建属性设置为自动创建“版本”文件,其中包含svnversion或SubWCRev命令的过滤输出。此信息不仅用于报告主可执行文件的修订号和修改状态,还用于报告构建和用于链接的组件静态库。
一个复杂的问题是我们的TFS服务器位于另一个状态的VPN的末尾,并且不可靠。在未连接到TFS服务器的情况下,能够在本地构建代码非常重要。据我所知,TF命令行工具坚持尝试建立连接,或报告我无权访问远程资源。
当前的VS / TortoiseSVN方法只有一个自定义构建步骤(在“PreBuildEvent”之后执行),它调用SubWCRev然后过滤输出以使其与svnversion的输出兼容,最后将其写入头文件:< / p>
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一起使用吗?
非常感谢任何帮助!