Starteam“未知”文件

时间:2009-01-27 22:46:44

标签: starteam

我们有一个StarTeam视图,其中有两个处于“未知”状态的文件 - 是否有人理解他们为何处于此状态和/或我们如何将其从状态中移出?

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

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

感谢。


更多信息基于克雷格的建议如下:

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

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

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

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

如果我尝试检出所有四个Missing文件,我会收到两个警告,提示我合并文件。我说不,文件现在在我的本地文件系统上,状态又回到我开始的位置 - 两个文件列为“未知”。


克雷格的更新:

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

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

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

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

问题似乎已得到解决。你认为我应该手动删除额外的子目录吗?


感谢Craig,此问题似乎已解决。我不知道这种情况是如何产生的(任何人?)但是......我们现在很好。谢谢克雷格!

4 个答案:

答案 0 :(得分:6)

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

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

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

如果文件在服务器上显示为OK,则通过比较内容在本地测试。如果文件在本地损坏,请随意在本地删除该文件,然后再次检出。与删除服务器上的文件不同,除了本地修订外,您不会丢失任何内容。

如果这些建议无法解决问题,我仍然不建议删除服务器上的文件。告诉我你在这里的调查结果,我们会看到我们可以从那里去的地方。在我看来,几乎总是错误地杀死历史。

更新

根据帖子中的更新信息,我可以更好地了解这里发生了什么。可能有两个项指向同一个文件,并且具有相同的名称。 “项目”是StarTeam中的一个概念,涉及单个文件,变更请求,要求等可以同时存在于多个位置的事实。例如,您可以在两个不同的视图或项目中使用单个文件。

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

我要尝试的第一件事是尝试将其中一个项目拖到其他地方。如果这样可以解决相关文件夹中的问题,则可以在其他位置删除该项目,而不会影响文件夹中的项目。另一方面,如果拖动其中一个项目导致它们都移动,则很容易将项目拖回到它们来自的位置。

更新2

  

你认为我应该手动删除额外的子目录吗?

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

答案 1 :(得分:2)

如果再次出现此问题,则识别此问题的一种好方法是单击根文件夹,将文件夹路径添加到显示的列,然后单击所有后代按钮。按名称对文件进行排序,查找未知文件,查看是否有多个同名文件签出到同一路径。通常这是错误的共享,添加或文件夹签出路径更改的结果。

由于未确定StarTeam将检出文件的顺序是什么,因此将两个具有相同名称的不同文件指向同一本地位置是错误的。 2005R2本机Windows客户端和跨平台客户端将以稍微不同的顺序提取文件,导致具有此问题的视图生成具有不同文件的检出。

有几种方法可以合理地结束这种情况 - 在提示上保留单个文件的多个分支,并指定视图标签使用哪个分支是常见的。 StarTeam是为数不多的可以处理多个这样的引用的VC之一。

另外,如果您可以提供帮助,请不要删除并重新添加文件。 99%的时间,这不是你想要做的。将文件重新添加到服务器会在数据库中为其提供一个全新的存档,并且它不会以任何方式绑定到该文件的现有共享。您还将丢失所有修订历史记录。相反,寻找移动文件的方法。如果您的服务器上有多个具有相同名称和内容的文件,那么通常最好将文件共享到它应该存在的各个位置,而不是重新添加它。这将确保您的更改传播,因此您无需多次签入修复程序。

答案 2 :(得分:1)

这些文件是否已添加两次?您可以多次添加同一文件,这可能会导致此错误。另外,请检查“参考”选项卡 - 这些链接文件是否存储在存储库的其他位置?

答案 3 :(得分:0)

这可能是文件或其状态在服务器上损坏了吗?在这种情况下,删除和重新添加是唯一的方法。