我正在为其他人调查此事,但我希望这种解释是正确的:
我们在TFS源代码控制中有很多文件和很多文件夹,但其中有两个是这些(组成名称):
$ /根/共享/...
$ /根/ /...
现在签入了$ / Root / Shared / Client / Main文件夹中的5个文件,当查看变更集时,他们都在更改字段中显示“编辑”。
但是,在查看路径时,其中3个被检入 $ / Root / Solutions / Client / Main 而不是 $ / Root / Shared / Client / Main 。最后两个是在预期的位置。
它变得更糟;没有,也不应该是 $ / Root / Shared / Client / Main 文件夹。浏览源代码管理时,此位置不存在。并且文件也不在原始位置,它们刚刚消失 - 除了在变更集中查看它们时。
这里可能发生什么?我确实有代码,因为我可以在变更集中看到它们,但我不想通过再次创建它们并复制代码来丢失历史记录。
答案 0 :(得分:1)
更仔细地阅读内容,听起来就像是在描述已经重命名/移动的文件。
TFS认为名称空间信息与文件内容一样重要。如果你要求旧版本的$ / Root,你不仅要获得这些文件的旧版本,而是获得旧文件&文件夹结构也完全按照当时的方式保存。这种设计渗透到系统中,包括您看到的View Changeset对话框。
剩下的问题似乎是,我的文件去了哪里?最快捷的方法是使用Power Tools中的cmdlet:
Get-TfsItemHistory -all .\rentest2\grand2\child2\parent\foo3.cs |
Select-TfsItem |
Format-Table -auto path, @{label="version"; expression={$_.versions[0].changesetid}}
Path version
---- -------
$/Test-ConchangoV2/rentest2/grand2/child2/parent/foo3.cs 10725
$/Test-ConchangoV2/rentest/grand2/child2/parent/foo3.cs 10148
$/Test-ConchangoV2/rentest/grand2/parent/foo3.cs 10147
$/Test-ConchangoV2/rentest/grand2/child2/foo3.cs 10146
$/Test-ConchangoV2/rentest/grand2/child/foo2.cs 10145
$/Test-ConchangoV2/rentest/grand2/parent/child/foo2.cs 10144
$/Test-ConchangoV2/rentest/grand/parent/child/foo2.cs 10143
$/Test-ConchangoV2/rentest/grand/parent/child/foo.cs 10142
我有一个小的GUI工具可以做到这一点,但不幸的是,还没有时间让它进入公共可用状态。
答案 1 :(得分:0)
我的猜测是你有一些棘手的工作区映射。在文件中检查自己 - >源控制 - >工作区。
为了获得最佳效果(请阅读:此类问题的最少失眠量),请在您需要的最高级别创建一个映射。如果这太宽泛,请将此根映射设为“一级”映射(使用*语法;请参阅docs),然后在下面创建具有相同相对路径 的其他递归映射 它根据需要。