GetOptions上的所有选项意味着什么?

时间:2015-08-24 11:01:51

标签: tfs

MSDN documentation列出了四个选项,解释有限:

  • 覆盖“如果现有可写文件与下载的文件冲突,则覆盖它们。”这适用于所有文件,还是我们告诉TFS我们编辑过的文件?
  • GetAll“获取所有文件。” TFS通常不会获得哪些文件?
  • 预览“执行get而不修改磁盘。”这个看起来很清楚。
  • 重新映射“将磁盘上的现有项目重新映射到内容和磁盘位置未更改的服务器项目。”我不知道这意味着什么。

1 个答案:

答案 0 :(得分:3)

覆盖:将盲目地覆盖您尚未挂起以进行编辑的可写文件。如果您已将文件标记为“可写”,那么您违反了与TFS的合同,并且它假定您已完成此操作(例如,修改文件而不进行结帐,因为您正在脱机工作)。这通常会在文件上产生可写冲突,但如果指定此标志,则可写文件将被覆盖。

这仅适用于服务器工作空间(本地工作空间始终可写)。这对您挂起以进行编辑的文件没有任何影响。对于在本地编辑并在服务器上更新的文件,Get将始终产生冲突;如果要更新已签出的文件,则必须撤消签出(或解决与TakeTheirs的冲突)。

全部获取:将下载每个文件并进行更新,即使TFS认为本地版本与远程版本相同,并且下载新版本也是noop。 TFS跟踪本地和远程的每个版本,因此只有在本地编辑文件而不检查它们时才有用。

如果你让它们保持可写,那么 - 如上所述 - 这将是一个可写的冲突。如果您已将它们标记为只读,则TFS会假定您没有进行任何更改,并且在执行get时不会更新它们(因为它知道文件内容未更改)。如果您手动更改了文件内容,则标记为将这些文件更新为服务器版本。

预览:只会触发事件并提供结果,指示使用给定参数下载 的内容。

重新映射:是一个聪明的选项,允许您执行就地分支切换(这对于在存储库级别分支的某些版本控制系统非常常见 - 比如Git - 但有点复杂在TFVC。)

请注意您已将$/Foo/main映射到C:\Foo,并完成了最新动态。如果您更新工作文件夹映射,以便$/Foo/branches/feature现在指向C:\Foo,然后发出Remap获取,则服务器将仅在mainbranches/feature之间下载已更改的文件def create @post = Post.new(params[:post]) if @post.save respond_to do |format| format.html format.js end end end ,因此将本地工作区更新为功能分支是一种廉价的方法。

(如果您正在寻找一个示例,此功能存在于命令行界面和Team Explorer Everywhere中,但不存在于Visual Studio中。)

相关问题