当 tf.exe 无法提供所有 TFS 团队项目的历史记录时,VS 2005 如何提供?
在 Visual Studio 2005 的 TFS 源代码管理资源管理器中,这些是 TFS 服务器本身的顶级节点,每个团队项目都有一个子节点。右键单击服务器节点或团队项目节点会出现一个上下文菜单,其中有一个查看历史记录
项。选择此选项将为您提供一个历史记录窗口,显示最近 200 个左右的变更集,无论是针对所选的特定团队项目,还是跨所有团队项目。
我想知道的是所有团队项目的这段历史。命令行 tf.exe History 命令提供(据我所知)与 VS TFS 源代码管理插件提供的功能基本相同的功能。但我无法弄清楚如何获取 tf.exe 历史记录来提供跨所有团队项目的历史记录。
在命令行中,假设我将 C:\
映射为工作区的根目录,并将 Foo
、Bar
和 Baz
作为团队项目,我可以
C:\> tf history Foo /recursive /stopafter:200
获取影响团队项目 Foo
的最后 200 个变更集;或者在团队项目文件夹中
C:\Bar> tf history *.* /recursive /stopafter:200
,该文件夹对团队项目 Bar
执行相同的操作 - 请注意,此处允许使用通配符 *.*
。
但是,这些都不起作用(每个都会给出所示的错误消息):
C:\> tf history /recursive /stopafter:200
历史命令仅获取一项
C:\> tf history *.* /recursive /stopafter:200
无法确定源代码控制服务器
C:\> tf history *.* /server:servername /recursive /stopafter:200
无法确定工作空间
我在文档中没有看到用于指定工作空间的 tf
选项;它似乎只想从当前文件夹中确定它。
那么VS 2005 在做什么呢?是否在内部依次对每个团队项目进行历史记录,然后将结果粘在一起?
还请注意,我尝试过使用电动工具;来自命令行的 tfpt History
给出与此处看到的完全相同的错误消息
In Visual Studio 2005, in the TFS Source Control Explorer, these is a top-level node for the TFS Server itself, with a child node for each Team Project. Right-clicking either the server node or the node for a Team Project gives a context menu on which there is a View History
item. Selecting this gives you a History window showing the last 200 or so changesets, either for the specific Team Project chosen, or across all Team Projects.
It is this history across all Team Projects that I am wondering about. The command-line tf.exe history
command provides (as I understand it) basically the same functionality as is provided by the VS TFS Source Control plug-in. But I cannot work out how to get tf.exe history
to provide this across-all-Team-Projects history.
At a command line, supposing I have C:\
mapped as the root of my workspace, and Foo
, Bar
, and Baz
as Team Projects, I can do
C:\> tf history Foo /recursive /stopafter:200
to get the last 200 changesets that affected Team Project Foo
; or from within a Team Project folder
C:\Bar> tf history *.* /recursive /stopafter:200
which does the same thing for Team Project Bar
- note that the wildcard *.*
is allowed here.
However, none of these work (each gives the error message shown):
C:\> tf history /recursive /stopafter:200
The history command takes exactly one item
C:\> tf history *.* /recursive /stopafter:200
Unable to determine the source control server
C:\> tf history *.* /server:servername /recursive /stopafter:200
Unable to determine the workspace
I don't see an option in the docs for tf
for specifying a workspace; it seems to only want to determine it from the current folder.
So what is VS 2005 doing? Is it internally doing a history on each Team Project in turn and then sticking the results together??
note also that I have tried with Power Tools; tfpt history
from the command line gives exactly the same error messages seen here
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要位于映射目录中才能正常工作。例如,如果您将“$/”映射到“C:\TFSSOURCE”,请将目录更改为 C:\TFSSOOURCE 并重试该命令。
You need to be in a mapped directory for that to work. For example if you have "$/" mapped to "C:\TFSSOURCE", change directory to C:\TFSSOOURCE and try the command again.