Mercurial搞砸了csproj文件?

时间:2012-04-01 21:51:42

标签: visual-studio-2008 mercurial merge

我正在使用Hg来管理和合并与VS2008项目中涉及的其他三个开发人员的代码。我们有一个.hgignore文件,忽略了不需要跟踪的相当数量的文件,例如* .pdb,* .obj等。但是,我们会跟踪.csproj文件。

合并后,似乎文件会丢失。我们会遇到构建问题,并且必须重新定位项目文件夹中的文件,而不是csproj文件中的文件。

最后,我注意到在合并冲突期间,有时Hg似乎合并错误。这是下面的截图。文件中需要手动干预的实际冲突较低。但在本节中,hg错误地将DirectoryTasks.cs替换为一个名为ReportTasks.cs的新的不同文件,实际上,两者都应该添加。人们如何设法避免这种情况?

enter image description here

2 个答案:

答案 0 :(得分:0)

因此,图片上显示的内容意味着:

  1. 最初有DirectoryTasks.cs
  2. 然后手动开发人员1或使用一些VS GUI(在parent1版本中)将其更改为ReportTasks.cs
  3. 开发者2没有改变它
  4. 因此,当您合并时 - 您将获得其他开发人员所做的更改。

    问题应该是:为什么VS或开发人员在DirectoryTasks版本中用ReportTasks替换了parent1(并且它与HG根本没有关系)

答案 1 :(得分:0)

我会支持zerkms:这是开发人员的错误,而不是hg

parent1的作者替换一个字符串DirectoryTasks ReportTasks添加另一个ReportTasks字符串。在这种情况下,您必须与开发人员一起工作。

.csproj文件是强制性的,以便在一个全新的工作场所中获得正常运行的项目,或者它是本地IDE工件,每个IDE都会根据自己的需求重新创建吗?