Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS变更集签入之间的更改丢失_Tfs - Fatal编程技术网

TFS变更集签入之间的更改丢失

TFS变更集签入之间的更改丢失,tfs,Tfs,我发现,当我们的承包商办理入住手续时,我的一些更改正在“丢失” 一般程序如下: 我执行了一些bug分析并实施了修复 然后我签入我的代码 承包商在稍后日期进行退房/入住 来自上一个变更集(我的变更)的变更将丢失 在我看来,这是非常不可接受的,尤其是当我处理自上次构建以来引入的破坏应用程序的回归时 现在这种情况已经发生了至少两次,我唯一能想到的是,承包商未能确保他在退房时拥有最新的变更集。我们的回购协议不允许多次签出,并且强制在签出时获取最新信息,这使得事情变得非常奇怪(因为我们都应该使用服务器工作

我发现,当我们的承包商办理入住手续时,我的一些更改正在“丢失”

一般程序如下:

  • 我执行了一些bug分析并实施了修复
  • 然后我签入我的代码
  • 承包商在稍后日期进行退房/入住
  • 来自上一个变更集(我的变更)的变更将丢失
  • 在我看来,这是非常不可接受的,尤其是当我处理自上次构建以来引入的破坏应用程序的回归时

    现在这种情况已经发生了至少两次,我唯一能想到的是,承包商未能确保他在退房时拥有最新的变更集。我们的回购协议不允许多次签出,并且强制在签出时获取最新信息,这使得事情变得非常奇怪(因为我们都应该使用服务器工作区)


    这个问题还有其他原因吗?我不想在不确定我是否涵盖了所有基础的情况下将我的担忧告诉我的直线经理。

    在签出时获取最新项目
    是在客户中设置的,而不是在回购协议中设置的,这意味着您的承包商可能仍然能够签出错误的版本。他们应该在这样做时获得合并冲突,但这取决于他们编辑的位置(以及他们如何管理此类冲突)。

    我看到TFS以这种方式丢失更改。我昨天去了一个客户端站点,做了更改,签入,今天回到我的办公室,得到了更改(假设它会像通常一样与我的本地更改合并),刚刚去签入,我可以在差异中看到它已经删除了客户端站点更改(显然忽略了本地合并)。我签入只是为了确认我看到了什么,是的,不需要解决冲突,TFS认为一切正常,但我修改的本地文件只是公然在TFS中重写了修改后的版本,实际上放弃了整个客户端站点更改(就像我选择了解决冲突——保留我的冲突——但它从未问过我冲突的情况,也没有暗示有冲突,只是默默地失去了它)

    如果您在提交更改之前仔细观察更改,您会发现您所做的更改超出了您的想象-即客户端站点更改被有效删除,并将显示为差异-但是,当您经常这样做时,很容易忽略这一点。
    以前我曾想,如果同事以这种方式跳过我的更改,我会责怪他们,但现在我亲眼看到自己这样做,我意识到这个工具是有缺陷的。很难相信,但它将本地更改的文件与“获取最新信息”合并的方式显然有问题。我使用的是一个云TFS,网络连接不良Action有时-有人告诉我这是问题的原因。

    事实上,网络问题可能会导致您进入这种状态。如果您试图签出文件,但有一些网络问题阻止您联系服务器,并且您仍要覆盖该文件,则您已进行了修改,但未进行检查文件已签出,TFS可以随意覆盖该文件。请确保文件已正确签出。或者使用TFS 2012(或更新版本)中的本地工作区在我看到的场景中,文件在本地签出并更改,然后在远程位置签出并更改,然后从远程位置签入,然后在本地发出get latest,并且没有迹象表明本地文件发生了合并,它只是忽略了e远程位置更改。当我显式进行差异时,它向我显示存储库中的最新版本有更改,而我的文件没有,但它对该场景非常满意,并允许我签入文件,而无需更改,从而有效地反转远程站点的更改。