【问题标题】:Does Visual sturdio creates a workspace for every tfs project?Visual Studio 是否为每个 tfs 项目创建一个工作区?
【发布时间】:2018-05-11 12:24:45
【问题描述】:

我是在线使用 tfs 和创建项目的新手。当我在 TFS 在线平台上创建项目并从 Visual Studio 连接时。所以我需要在我的光盘上映射项目。我看到一个与我的计算机名称相同的工作区。 Visual Studio 是否为每个 tfs 项目在 Visual Studio 上创建工作区?工作空间的目标是什么?

【问题讨论】:

  • 我已经使用 TFS 大约 10 年了,我仍然不明白工作区应该提供什么功能,除了让开发人员感到沮丧之外。几个月前我切换到 git,很高兴我不必再处理它们了。
  • @BradleyUffner 希望我的解释最终能让你明白。这是一个如此简单的概念,我总是对人们对此感到困惑。

标签: visual-studio tfs visual-studio-2017


【解决方案1】:

工作区表示源代码管理中的位置 ($/SomeTeamProject/SomeFolder 和计算机上的位置 (C:\SourceCode\SomeTeamProject\SomeFolder) 之间的映射。

就是这样。这是一个非常简单的概念。

您可以维护多个工作区以进行隔离,或者只将一个工作区映射到团队项目集合根 ($/),这意味着集合中的每个团队项目都将映射到同一个工作区。这完全取决于你。多个工作区的优势在于,您可以明确避免在不经意间跨分支或团队项目边界修改一堆东西。如果您有一个开发分支的工作区,您将只能签入该分支中的一组文件。如果要签入另一个分支中的文件,则必须切换工作区。这可能是一个很好的健全性检查,但绝不是必需品。

工作区可以包含多个映射(例如,$/Foo/Bar -> C:\Foo\Bar$/Foo/Baz -> C:\Foo\Baz 将映射这两个文件夹,但忽略 $/Foo 下的任何其他文件夹)。

工作区也可以包含伪装——明确地排除一个被映射的文件夹。因此,如果您想要 $/Foo 下的所有内容除了Bar 文件夹,您可以映射$/Foo/ 并隐藏/$Foo/Bar

工作区有两种形式:Server and Local

从 TFS 2005 到 TFS 2012,服务器工作区是默认设置。在服务器工作区中,您在源代码控制中进行的每项活动都必须通过 Visual Studio(或等效的 IDE)进行——开始处理文件会联系服务器并检查文件。文件以只读方式存储在文件系统中,除非它们被签出。

一般来说,服务器工作区很糟糕。我不建议使用它们,除非在一些非常特殊的情况下。

本地工作区是在 TFS 2012 中引入的,并且在 Visual Studio 2012 中首先得到支持(毫不奇怪)。本地工作区有点像 Git,因为编辑文件不需要在服务器上显式签出——您可以随时在任何 IDE 中编辑文件。这允许您以非常有限的方式离线工作。

【讨论】:

  • 如果仅此而已,您为什么需要多个,如果某些东西被映射到另一个工作区,为什么 Visual Studio 会发疯?
  • @BradleyUffner 我举了一些例子来说明为什么要创建多个工作区。您不能将多个工作区映射到同一个文件夹。如果我将$/Foo 映射到C:\Foo 并尝试将$/Bar 映射到C:\Foo,在另一个工作区中,它会阻止您进行该映射。
  • 感谢您的解释。它与我认为他们所做的一致,但我一直认为还有更多的事情发生,因为这些是我遇到的任何其他版本控制系统都没有让你跳过的箍。我从来没有想过工作空间曾经让我的事情变得更容易,它们似乎总是让事情变得复杂。
猜你喜欢
  • 2017-09-10
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
相关资源
最近更新 更多