我正在尝试编写一个非常轻量级的"构建"脚本,它基本上只能从TF获取一些文件(基于Changeset编号).然后我将在SQLCMD中运行这些文件.
我正在使用这个:
tf.exe get c:\tfs\ /version:c2681 /force /recursive
Run Code Online (Sandbox Code Playgroud)
但是,这似乎得到了一切,而不仅仅是变更集#2681中的文件.我希望能够将它指向我的tfs工作区的根,给它一个变更集编号,并让它只更新那些少数特定文件.此外,它似乎是越来越旧的版本(也许是在更改集#2681签入时的当前版本)?
有没有办法获得那些特定的文件,而不需要在tf get itemspec中专门调用它们?
编辑:我实际上必须添加/ force选项,以便它可以做任何事情.如果没有强制,它甚至不会从服务器中检索我在本地删除的文件,这肯定在变更集中.
谢谢,西尔维娅
TFS 服务器跟踪每个工作区包含的内容1。使用非 TFS 客户端命令(无论是tf.exe团队资源管理器还是其他客户端)在本地进行的任何更改都将导致 TFS 服务器的视图与实际存在的视图之间存在差异。
各种客户端上的强制选项只会消除这种不一致(有效地重置客户端上的内容和服务器认为存在的内容)。
\n\n当您针对指定版本(无论是日期、变更集还是标签)执行获取时,您将获得截至并包括该时间点的所有内容,无论当时是否没有具体更改。所以得到
\n\ntf get /version:D2012-03-30\nRun Code Online (Sandbox Code Playgroud)\n\n将在该日期或之前获得更改。
\n\n要仅获取变更集中包含的项目,您必须自己做一些工作,使用命令获取变更集内容的列表并解析该列表以执行正确的操作(变更集不仅可以包含更新和内容)添加文件2 )。
\n\n在我看来,如果您想在影响特定 TFS 文件夹的每个变更集上执行构建,您最好考虑使用 TFS Build,这就是完全做到 \xe2\x80\x93 避免重新发明轮子 \xe2\ x80\x93 并专注于构建部分(其他连续构建解决方案可用)。
\n\n1这将随着 TFS11本地工作区而改变。
\n\n2例如。处理文件夹的重命名将需要一些不简单的工作。
\n| 归档时间: |
|
| 查看次数: |
9466 次 |
| 最近记录: |