代码之家  ›  专栏  ›  技术社区  ›  jcolebrand

TF203015项$/path/文件具有不兼容的挂起更改。试图取消搁置时

  •  46
  • jcolebrand  · 技术社区  · 15 年前

    我使用的是Visual Studio 2010 Pro与TeamServer2010,我的项目是作为repo的解决方案打开的(很明显),但我应该以“网站”的形式打开它。我在编译过程中发现了这个问题,所以我把新的更改搁置起来,从本地磁盘上删除了项目,然后从源文件(这次是网站)重新打开了项目,现在我无法取消搁置文件。

    有办法解决这个问题吗?我把什么东西炸了吗?我需要在服务器上进行维护吗?

    我发现 this question on SO #2332685 但我不知道他在说什么缓存文件(我在xp:\) 编辑: Found this link after posting the question, sorry for the delay in researching, still didn't fix my problem

    当然,我在任何地方都找不到用于TF203015的错误代码,因此也没有解决方法(因此我在标题中包含了该数字,是吗?)

    编辑: 我可能会提到这些文件一开始从来没有被检入过。这重要吗?您可以搁置未选中的项目吗?这就是我做错的吗?

    编辑: 什么-找到了!!!! Use "Undo" 在不存在的项上,因为它们在挂起的更改中显示为签入。

    8 回复  |  直到 15 年前
        1
  •  48
  •   Jason    7 年前

    我在尝试重新加载工作区时删除了这些文件,即使我已经搁置了更改。然后VS2010认为这些文件仍在等待保存。我不需要这样做,所以我必须想办法“撤消”挂起的更改中的更改。

    然后我就可以脱钩了。

    它认为我有两个操作(取消搁置,提交添加)同时进行,我认为我只有一个操作(取消搁置)。

        2
  •  43
  •   Kingpin2k    9 年前

    这是对行动党问题的一个小小的偏离

    在尝试将多个变更集从一个分支批量合并到另一个分支时,可以不必太小心地获取一个TF203015。

    考虑这样一种情况:您有一个主主干和一个dev分支。您将dev从main分支出来,并且已经努力地开发了dev中的一个特性;在您的进展过程中将工作重新检查到dev中。现在快进一两周。现在您的功能已经完成,并希望重新合并到main中。

    我们的一个开发者就是在这里犯这个错误的。

    他已经研究了几个星期的一个解决方案,并定期将变更集检查回dev,因此希望将一系列不连续的变更集合并回main。 因此,他选择了合并选项,选择了第一个变更集;无问题地合并,然后立即去合并下一个变更集;并在输出窗口中进行了一个非常无用的测试:不兼容的挂起的更改。

    在做了一点小改动之后,我们现在意识到这里发生了什么;第一次合并为开发人员解决方案创建了一个待定的主变更。下一次合并尝试也是对同一解决方案的更改,这将要求TFS“排队”对同一文件进行第二组挂起的更改。它不能这样做。

    因此,在这种情况下,TF203015意味着:“目标分支已经对该变更集中更改的某些文件进行了挂起的更改。请在执行此合并操作之前解决并提交目标分支更改。”

    解决方案;在每次合并操作之后,我们的开发人员将测试主工作区,并提交由合并引起的挂起的更改,然后返回到dev并重复。

    实际上是明智和简单的,但被一个非常愚蠢的错误信息掩盖了。

        3
  •  5
  •   Mark Freeman    11 年前

    您可以在2011年3月使用Team Foundation Server Power工具( http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx )包括命令 tfpt unshelve .

    安装电动工具后,打开Visual Studio命令提示,更改到包含感兴趣项目的目录,然后执行 不搁置 命令。它将取消搁置并显示合并对话框,以便解决冲突。

    我相信这篇博文能帮助我找到这个解决方案: http://fluentbytes.com/the-how-and-why-behind-tf203015-file-has-an-incompatible-change-while-unshelving-a-shelve-set

        4
  •  2
  •   user594315    14 年前

    我有一个看起来是相同的问题,但是我在搁置了我的更改之后创建了一个分支,我想取消这些更改对新分支的搁置。

    TFS无法取消搁置到与创建工具架所依据的路径不同的路径。

    解决方案:我取消搁置回原始分支,然后使用beyond compare合并从原始分支到新分支的更改并签入。

        5
  •  2
  •   Tom Stickel    10 年前

    也可能是在您在say“test”中创建了一个文件夹并希望从dev合并到test之后,您没有将新创建的文件夹结构签入到tfs中-您将/也可以收到此错误消息。

    因此,对于来自Google和查找此页面的其他人来说,此消息错误可能与搁置集无关。

        6
  •  1
  •   OutstandingBill    7 年前

    这可能与JColebrand的回答相同,但恐怕我发现这里的措辞有点深奥。如果我只是重复的话,真诚的道歉。

    在我的场景中 incompatible pending change 出现消息是因为我试图回滚多个变更集,而同一文件受多个变更集的影响。

    在我的例子中,在回滚所有更改之前,我不想提交。我相信,如果我在回滚每个变更集之后能够提交,那么错误就不会发生。

    我采用的方法如下:

    • 我选择一次回滚一个变更集。我发现使用 command line 实际上是一种更有用的方法,因为它列出了所有的冲突,而我认为vs-ui回滚只列出了第一个冲突。
    • 在回滚变更集时,如果 不兼容的挂起更改 ,我必须撤消工作区对受影响文件的挂起更改。
    • 当所有的变更集都被回滚后,我必须手动还原经历过的文件 不兼容的挂起更改 . 大多数情况下,这可以通过获取文件的特定版本(在所有错误签入开始之前的“最后一个已知良好”版本)来实现。但对于一些既有所需更改又有不希望更改的文件,我得到了“最后一个已知良好”并手动将良好更改应用于它。
        7
  •  0
  •   Kapil    9 年前

    此链接解决了我的问题:

    https://blogs.infosupport.com/the-how-and-why-behind-tf203015-lt-file-gt-has-an-incompatible-change-while-unshelving-a-shelve-set/

    原因是同一工作空间中挂起的更改创建了不兼容的更改。因此,请撤消挂起的更改并尝试取消搁置。这样可以解决问题。

        8
  •  0
  •   peter70    9 年前

    如果您有两个分支MAIN(TARGET)和DEV(SOURCE),那么现在您希望将DEV合并到MAIN中,那么您希望从源合并的所有文件都不能比目标分支中的类似文件旧。

    例如:您的dev分支中的test.cs文件已更改,更改时间为2016年3月14日。在您的主要分支机构中,test.cs于2016年3月15日进行了更改。因此,目标比源文件更新,而您拥有的是TF203015。

    解决方案:在TFS资源管理器中导航到冲突文件并将其显式合并。TFS将打开冲突管理器,您可以手动合并冲突。接下来,您可以合并选定的变更集。

    备注:如果有更多冲突,则必须导航到每个冲突文件并将其显式合并,以便TFS打开冲突管理器,您可以手动合并它。

    推荐文章