TFS - 文件以错误的文件夹结尾

时间:2009-10-14 06:39:19

标签: version-control tfs

我正在为其他人调查此事,但我希望这种解释是正确的:

我们在TFS源代码控制中有很多文件和很多文件夹,但其中有两个是这些(组成名称):

$ /根/共享/...

$ /根/ /...

现在签入了$ / Root / Shared / Client / Main文件夹中的5个文件,当查看变更集时,他们都在更改字段中显示“编辑”。

但是,在查看路径时,其中3个被检入 $ / Root / Solutions / Client / Main 而不是 $ / Root / Shared / Client / Main 。最后两个是在预期的位置。

它变得更糟;没有,也不应该是 $ / Root / Shared / Client / Main 文件夹。浏览源代码管理时,此位置不存在。并且文件也不在原始位置,它们刚刚消失 - 除了在变更集中查看它们时。

这里可能发生什么?我确实有代码,因为我可以在变更集中看到它们,但我不想通过再次创建它们并复制代码来丢失历史记录。

2 个答案:

答案 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),然后在下面创建具有相同相对路径 的其他递归映射 它根据需要。