决定使用本地还是服务器工作区

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 |Visual Studio 2019 |Visual Studio 2017 |Visual Studio 2015 |Visual Studio 2013

创建或编辑工作区时,可以指定其位置是“本地”还是“服务器”。

何时应使用本地工作区?

如果计算机与连接到的Azure DevOps实例之间没有可靠的连接,则使用本地工作区,工作区中将少于 100,000 个项目。 如果你不需要作为团队的一部分工作,并且强烈建议以类似于 Git 的方式处理文件系统,则也可能更可取。

重要

使用本地工作区可能会降低性能,因为项数接近或超过 100,000。 这是因为本地工作区保留同一文件的多个副本,以便在本地启用某些版本控制操作,因为DevOps Server连接无法可靠地可用。 这也意味着磁盘上占用的空间更多。

我可能何时需要使用服务器工作区?

当未满足使用本地工作区的特定条件时,或者如果...

  • 你要使用 Visual Studio 2010 或早期版本在工作区中工作。

  • 需要使用 “启用获取最新签出 ”选项。

断开连接时在服务器工作区中工作

如果暂时断开与DevOps实例的连接,则仍可在服务器工作区中工作,方法是采用解决方案“脱机”。 稍后,当连接可用时,可以采用解决方案“联机”返回到连接行为。 Visual Studio将检测断开连接的条件,并自动使解决方案脱机,但如果希望手动执行此操作,则执行这些步骤。

提示

如果脱机工作对你很重要,则应考虑使用本地工作区而不是服务器工作区,请参阅本主题前面的 本地工作区

使解决方案脱机

  1. 从本地工作文件夹中打开要使用的解决方案。

    如果服务器处于脱机状态,将显示 “Go 脱机 ”对话框。

  2. 选择 “确定”

将编辑保存到解决方案中的文件时,可能会提示你使用“ 保存Read-Only文件 ”对话框。 这是正常情况。 选择 “覆盖 ”以从文件中删除写入保护。 在脱机时,它只应为每个文件询问一次。

Visual Studio不会自动将解决方案重新联机,用户必须使用以下步骤执行此操作。

当DevOps服务可用时使更改联机

  1. 解决方案资源管理器中,打开解决方案或文件的上下文菜单,然后选择“联机”。

    • 或 - 在“文件”菜单中的“源代码管理”下,选择“联机”。

    此时将显示 “Go Online ”对话框,并显示你脱机所做的更改。

  2. 选中要签入的每个更改的复选框,然后选择“联机”。

    脱机所做的更改会作为挂起的更改添加到 Team Foundation 版本控制中。

管理团队的项目集合工作区设置

如果你是管理员,则可以指定默认情况下为团队成员创建哪种类型的工作区Visual Studio:本地或服务器。 还可以为团队的服务器工作区启用异步签出。

  1. 在菜单栏上,选择“团队”,Project集合设置源代码管理”。

    此时会显示“源代码管理设置”对话框。

  2. “工作区设置”选项卡上,选择“本地”或“服务器”选项按钮。

  3. 通过选择“ 在服务器工作区中启用异步签出”,可以缩短系统签出文件到服务器工作区所需的时间。 如果您选择此选项:

    • 将不再强制实施 PendChange 权限。

    • 签出锁定将被禁用

从命令提示符处工作

问题解答

问:在已经应用签出锁定的情况下,某人仍然签出了文件。 这是怎么发生的?

答: 使用本地工作区会使 签出锁 不可强制执行。 如果有足够的 权限 ,可以使用 工作区命令 查看项目集合中使用的本地工作区。

tf workspaces /format:detailed /owner:* /collection:https://YourServer/YourCollection/

问:为什么我看不到我的团队的某些成员签出文件时?

使用本地工作区的团队成员的挂起更改对 源代码管理资源管理器中的其他团队成员不可见。

问:能否切换工作区的位置?

答: 是的,只要需要,就可以将工作区的位置从服务器更改为本地或从本地更改为服务器。 请参阅 创建和使用工作区

问:我是否可在 Visual Studio 的多个实例中使用同一工作区?

答:尽管Visual Studio不会阻止你针对同一工作区运行多个实例,但不支持此用法。 此外,如果你使用本地工作区,则此工作方式更有可能会导致问题。

问:本地工作区如何工作?

答: 本地工作区缓存每个文件的未修改版本,使你能够在不连接到服务器的情况下编辑、比较和执行其他操作。