我正在 MacOS 计算机上工作,并尝试配置 TFS 工作区,以使用 VS Code 和适当的扩展。
我可能是错的,但所有可用的扩展都要求工作区已经映射到本地文件夹,这对我来说是有问题的部分。
下面的“company”和“www.mysite.com”都是占位符。
我执行的第一个创建工作区的命令运行良好:
tf 工作区-新 Oliviers-MacBook-Pro -集合:https://dev.azure.com/company/
我执行的第二个命令:
tf workfold -map ‘$/www.mysite.com’/Users/oliviermatrot -collection:https://dev.azure.com/company/ -workspace:Oliviers-MacBook-Pro
因验证错误而失败:
发生输入验证错误:TF10122:路径 $/www.mysite.com/$RECYCLE.BIN/desktop.ini 包含 $ 符号 路径组件的开始。删除 $ 符号,然后重试。
我不知道为什么这个命令会触发一个验证过程。我发现有一个 cloack 选项可以禁用服务器文件夹上的验证,但它对我不起作用:
tf workfold -cloak -collection:https://dev.azure.com/company/ -workspace:Oliviers-MacBook-Pro $/www.mysite.com/
发生错误:项目 $/www.mysite.com 可能无法隐藏,因为它没有映射的父项。
我无法找到在 Mac 上使用 TFS 的最新方法,即使 此资源 也不起作用。
作为补充说明,这是我的经理发送给我的链接,以便能够设置我的工作区:
https://dev.azure.com/company/www.mysite.com/_versionControl?path=%24/www.mysite.com/Trunk
那么,为什么会有这样的验证过程以及如何禁用它?
编辑:这是 DevOps 门户。没有 $RECYCLE.BIN 目录。
我执行的第二个命令...
tf workfold -map '$/www.mysite.com' /Users/oliviermatrot - collection:https://dev.azure.com/company/ -workspace:Oliviers-MacBook-Pro
...失败并出现此错误:
发生输入验证错误:
TF10122:路径在路径组件的开头包含一个$/www.mysite.com/$RECYCLE.BIN/desktop.ini
符号。删除$
符号,然后重试。$
错误不是指 TFS 路径 (
$
) 开头的 $/ww…
,而是指 $RECYCLE.BIN
路径组件(即文件或文件夹名称)。
因此,就上下文而言:请记住,TFS 基本上是 2005 年微软对 SVN 的采用(当时鲍尔默负责,微软的Not-Invented-Here-Syndrome 完全有效)。 TFS 服务器托管多个 团队项目 - 每个项目都有自己的源代码控制存储库 - 就像 SVN 或
git
存储库:它是一个独立的 文件夹树,其中包含版本化项目文件。
(一个有趣的事情是SVN和TFS实现了分支就好像它们是同一文件系统层次结构中的兄弟子目录;而
git
分支更像是平行宇宙这样两个分支就不会' t 同时共享相同的文件系统空间 - 所以 SVN 和 TFS 分支是 URI就像存储库中的任何其他子目录一样可寻址,而 git
分支是通过完全独立的命名空间来寻址的 - 只是需要考虑的事情)。
因此,在本地 TFS 中,您的“团队项目”(即您的项目存储库)本身将可以通过 HTTPS URI 进行寻址,其形式为
https://{serverName}/{TeamProjectCollection}/{TeamProjectName}/paths/to/files/go/here
。对于 AzureDevOps (AzDO),它是您组织的范围替代品。因此,对于这样的方案,这意味着 TFS 需要一种方法来告诉路径字符串的哪一部分是实际存储库根相对路径以及团队项目集合名称、项目名称等是什么 - **所以 TFS使用 $¬ character**: i.e. whenever TFS sees a path starting with
$/then it knows that's the repo-root - so if it sees
$_within_ a path, then (e.g, when handling a HTTP request operating on a TFS repo) it trims-off anything to the left of the
$` 来完成此操作 - 到目前为止,非常好。
...所以因为
$
是 TFS 保留,这意味着您不能将 TFS 与任何以 $
字符开头的文件或文件夹名称一起使用。
现在,就您的情况而言,您似乎确实有一个(隐藏的)文件系统目录,它是 macOS 配置文件目录的直接子目录,名为
$RECYCLE.BIN
(这似乎是 Parallels Virtualization 的工作) - 通常这不会这不是问题,因为您不打算使用 macOS(或 Windows)配置文件目录根作为映射到源代码管理存储库的目录。
此处的解决方案是创建一个新的空目录,该目录将作为映射的 TFS 工作目录的新根目录,如下所示:
cd ~
## `pwd` should indicate you're in "/Users/oliviermatrot"
mkdir TFSRoot
cd TFSRoot
tf workfold -map "$/" "/Users/oliviermatrot/TFSRoot/"