星际团队 "Unknown"文件

标签 starteam

我们有一个 StarTeam View ,其中有两个处于“未知”状态的文件 - 有人了解它们为何处于此状态和/或我们如何使它们脱离该状态吗?

删除它们并使用不同的名称重新添加它们是唯一的解决方案吗?

请注意,如果您 checkout 这两个文件(定期或使用“强制 checkout ”),它们将始终被列为“未知”(烦人)。

谢谢。

<小时/>

以下基于 Craig 建议的更多信息:

a) 使用 MD5 校验和计算文件状态:相同的结果(“未知”状态)

b) 这两个相关文件在服务器上只有一个修订版。我不确定这是否是因为我们的 CM 组试图通过删除并重新创建文件来解决问题,或者是否确实只有一个修订版。这些文件是文本文件。

c) 我尝试删除本地计算机上的文件并刷新状态。当我执行此操作时,我没有看到列出为“未知”的两个文件,而是看到总共列出了四个状态为“丢失”的文件。每个文件列出两个条目 - 每对都具有相同的文件名、文件夹路径、“修改者”和“ checkin 时的文件戳”。我不知道为什么每个文件都列出两次。如果我选择一对中的每个条目并选择“比较内容”,我的差异工具会说它们是相同的。

无论我使用 MD5 校验和比较还是非 MD5,这四个文件都存在同样的奇怪问题。

如果我尝试 checkout 所有四个丢失的文件,我会收到两个警报,提示我合并文件。我说不,这些文件现在位于我的本地文件系统上,状态又回到了我开始的位置 - 两个文件被列为“未知”。

<小时/>

克雷格的更新:

你肯定在做某事。我将每个重复的项目移动到另一个目录。这立即解决了问题,因为我现在可以 checkout 四个项目(两个在同一目录中,两个在新目录中),而没有任何“未知”项目。然后我删除了移动到新目录的两个项目。

在这样做的过程中,我看到了更多信息。我们不知何故有这样的目录结构:

Parent_Dir
--SubDir1
--SubDir1
--SubDir1
--SubDir1 <- Two items were here
--SubDir1 <- Two items were here
--SubDir2
--SubDir3
--SubDir4
--SubDir5

不知何故,我们有五个同名的子目录,并且这两个文件存在于两个同名的子目录中。

问题似乎已解决。您认为我应该手动删除多余的子目录吗?

<小时/>

感谢克雷格,这个问题似乎已经解决。我不知道这种情况是如何造成的(有人吗?)但是..我们现在很好。谢谢克雷格!

最佳答案

在确定问题所在之前删除这些文件将是一个巨大的错误。删除并重新添加该文件将删除历史记录以及该文件的任何链接。由于 StarTeam 内部的工作方式(无论如何,使用 Native-II 存储库),它也可能无法解决问题。删除文件并重新添加相同的文件实际上不会更新存储库中的任何内容,除了指向该修订版本的指针之外。当您删除文件时,修订本身将保留在那里,重新添加它只会创建一个指向该修订的新指针。

如果您还没有这样做,我强烈建议告诉 StarTeam 使用 MD5 校验和来计算文件状态。在客户端中通过“工具”->“个人选项”->"file"->“使用文件校验和来计算状态”执行此操作。然后再次尝试更新状态。这不是默认设置(至少在 StarTeam 的某些版本中),因此值得检查。如果您还没有这样做,它可能会自行解决问题。

要做的第一件事是确定修订版本在服务器上是否有效。如果文件是文本,最简单的方法是比较该修订版和先前修订版之间的内容。如果事实证明修订版已损坏,那么最好的解决方案是 checkout 较早的修订版,然后强制 checkin 。这样您就可以保留文件的历史记录。

如果文件在服务器上看起来正常,则通过比较内容在本地测试它。如果文件在本地损坏,请随时在本地删除该文件,然后再次检查。与删除服务器上的文件不同,执行此操作不会丢失任何内容,本地修订除外。

如果这些建议不能解决问题,我仍然不建议删除服务器上的文件。请告诉我你的调查结果,我们会看看接下来可以做什么。在我看来,扼杀历史几乎总是错误的。

更新

根据帖子中的更新信息,我对这里发生的事情有了更好的了解。很可能有两个项目指向同一个文件,并且具有相同的名称。 “项目”是 StarTeam 中的一个概念,与单个文件、变更请求、需求等可以同时存在于多个位置这一事实相关。例如,您可以在两个不同的 View 或项目中拥有一个文件。

通常,同一文件夹中不会有同名的项目。但这是有可能发生的。这可能解释了“未知”状态。当您告诉 StarTeam 将磁盘上的文件与服务器上同名的项目进行比较时,它可能无法确定应该查看哪个项目。

我要尝试的第一件事是尝试将两个项目之一拖到其他地方。如果这解决了相关文件夹中的问题,您可以在其他位置删除该项目,而不会影响该文件夹中的项目。另一方面,如果将其中一个项目拖动到其他位置会导致它们同时移动,则可以轻松地将项目拖回到它们原来的位置。

更新2

Do you think I should manually delete the extra sub directories?

是的,但就像处理文件一样,先移动它们,并在删除它们之前确保您要保留的子目录不受影响。

关于星际团队 "Unknown"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/485703/

相关文章:

asp.net-mvc - 避免在 ASP.NET MVC 中丢失 View

c++ - 迁移到 SVN,对删除旧文件感到困惑

c++ - 从 Starteam 迁移到 SVN

version-control - "trunk"应该是什么开发,或者发布

java - 使用 Java StarTeam API,我如何找到 StarTeam 项的哪些修订版具有特定标签?

version-control - 相当于 'git log'的StarTeam是什么

regex - 解析 StarTeam 命令行客户端输出

delphi - 不对 .dproj 进行版本控制的优点

git - 使用 url 链接到 Starteam 中的特定 CR 编号