我们在 TFS 中至少丢失了一个变更集(我们还不知道是否还有更多,可能没有)。我们注意到列表顶部的变更集现在消失了。我们认为至少可能有两个,因为我们发现的至少一个其他文件也存在以下症状。此外,我们可以在变更集编号序列中看到一个漏洞,我们不相信下面描述的文件的变更集就是那个。
涉及的单个文件更改了一行,TFS 中的版本有更改前的文件。
在更改之前,获取最新版本或获取特定版本会给我旧文件。
执行“获取特定版本”后,在 Source Explorer 中,在显示工作区状态的列中,显示“No”,表示文件已过时。到目前为止,我尝试过的任何操作都没有为我提供包含已签入更改的文件。
如果我尝试从 Source Explorer 查看文件,它会说我的文件已过期,并询问我是否要查看服务器版本或工作区版本。选择工作区版本给了我更改前的文件(可能是因为我做了上面的特定版本),选择服务器版本什么也没给我,对话框就消失了。
如果我签出文件并重做更改并尝试签入,它会说服务器上存在较新的版本并询问我如何解决。我可以选择丢弃本地更改或丢弃服务器更改。由于我想签入我的更改,我选择放弃服务器更改,但是当我尝试再次签入时(TFS 中的冲突停止签入过程),它只是重复冲突并询问要做什么。
基本上:
- 变更集已消失,已通过签入的开发人员进行验证
- 文件在服务器上没有变化
- 服务器对此文件的版本感到困惑,如果我尝试查看它,则会抱怨版本过时
- 不让我签入更改,只是重复与较新版本的冲突,大概是开发人员签入的文件由于某种原因不再通过更改集可用
所以...有人遇到过这个问题吗?这是 TFS 2008,应用了我所知道的所有更新,包括开发人员机器上的所有服务包,运行 Visual Studio 2008 Professional 和 Team Explorer 2008。
我该怎么办?我唯一的办法是恢复夜间备份吗?
编辑:发布问题后我正在尝试的事情:
- 检查托管 SQL Server 的服务器上的磁盘空间(与 TFS 服务器相同):很多,一个磁盘上有 6GB 可用空间,另一个磁盘上有 9GB 可用空间。可能未来不够用,但容易增加(虚拟机),但应该与我们当前的问题无关。
- 没有变化:在磁盘上的不同文件夹中重新创建一个新的工作区(我在添加新文件夹之前将它们全部删除),在项目的根文件夹上执行“获取特定”版本并选中底部的两个复选框(覆盖可写并覆盖所有) ,事后说我有最新的文件(在我上面提到的那一栏中是的)。查看文件会显示更改前的文件。对该特定文件执行“获取特定”版本会使其变为“否”,与签入相同的问题。
解决了??
我对一个完全不同的文件进行了另一次签入,不包括我们在上面遇到问题的文件,但该文件已“附加”到该变更集,即使我在尝试此操作时肯定没有签入。
换句话说,看起来与文件相关的变更集部分仍在 TFS 中,具有正确的变更集 id,因此当另一个具有相同 id 的变更集出现时,该文件成为它的一部分。
有没有人经历过这样的事情?如果发生这样的事情,它并不能真正提高我对 TFS 的信任。
我们还有另一个行为不端的文件,我将不得不看看它是否存在所有相同的问题,以及我们可以做些什么,如果有的话。如果该文件与我们似乎缺少的其他变更集相关,我认为除非我们启动 SQL 工具(我真的不会这样做),否则我们无法将该变更集放入数据库。