TFS总是在项目文件上存在冲突,它拒绝自动合并,就像它对代码文件一样
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TFS总是在项目文件上存在冲突,它拒绝自动合并,就像它对代码文件一样相关的知识,希望对你有一定的参考价值。
每个单一时间我通过添加/重命名/移动/删除更改来取消更改或通过此类更改进行挂起更改,我必须手动合并接收大量活动的父项目文件(大多数代码库嵌套在一个项目,因此其项目文件的版本经常更改)。
这是每天多次的挫折,似乎TFS应该能够为我做这个,因为更改很简单(例如,删除最新版本中已删除文件的行,并在本地添加新文件的行版)。我总结这一点,因为它以这种方式智能地运行代码文件到automerge版本。
那么为什么automerge对项目文件的行为与对代码文件的行为不同?
例如,开发人员A创建一个变更集,将一个文件添加到项目中并将其搁置以供审阅。然后另一个开发人员B检查项目的更改,该项目还添加了一个文件(不相关),所以当我去取消开发者A的更改时,我必须解决项目文件上的冲突。
此外,如果移动/重命名/添加了一组文件,并且我希望仅通过一次影响更改来取消搁置,则只需获取项目文件的服务器版本并手动重新应用单个更改(例如添加现有文件)而不是在数千行中合并十几个展开的变化。 (并且上帝禁止你进行重命名更改并获取项目文件的服务器版本,因为那时你需要用文本编辑器手动编辑它来重命名,否则你会因为重命名的文件已经存在于磁盘上而得到一系列错误当尝试从解决方案资源管理器重命名时)。
使用VS2014和我们的代码库主要生活在一个巨大的数据库项目(* .sqlproj)下。
最有可能的是,不同的文件被添加到文件的同一行,因为在大多数情况下,项目文件是自动生成的,与常规代码不同,当有人添加新文件项时,很难判断VS会在哪一行插入新文件项前端。如果2个人同时向项目添加新项目,很可能会获得项目文件的2个版本,这些新项目写在同一行上,这将导致冲突。有时,(例如,如果你添加引用),每个项目不止一行,这使合并更加糟糕。我建议每个对项目文件进行更改的开发人员使用锁(独占)进行检查,这样一次就会有一个更改。此外,确保其他开发人员在进行更改之前获取最新信息(Visual Studio中的工具>选项>源代码管理> Visual Studio Team Foundation Server中有一个设置)。这将使自动合并工作。
以上是关于TFS总是在项目文件上存在冲突,它拒绝自动合并,就像它对代码文件一样的主要内容,如果未能解决你的问题,请参考以下文章