应该将Xamarin解决方案的哪些部分保留在存储库之外?

Jan*_*sen 17 version-control mercurial dvcs xamarin.android xamarin

我正在与Xamarin.Android应用程序上的设计师合作,我们无法保持同步.我们使用Mercurial,但我的问题应与Git或任何其他DVCS相关.我的.hgignore文件如下所示:

^bin/
^obj/
^Components/
\.keystore$
Run Code Online (Sandbox Code Playgroud)

我不确定这些文件:

^Resources/Resource.designer.cs
\.sln$
\.userprefs$
\.csproj$
Run Code Online (Sandbox Code Playgroud)

谢谢!

更新
发现这个伟大的社区维基,确认排除*.pidb和*.userprefs并暗示确认包括*.sln和*.csproj
请参阅:.gitignore for Visual Studio项目和解决方案

我没有卖掉包括Resource.designer.cs文件.它在资源更改后自动重新生成,并包含以下通知:

// ------------------------------------------------------------------------------
//  <autogenerated>
//      This code was generated by a tool.
//      Mono Runtime Version: 4.0.30319.17020
// 
//      Changes to this file may cause incorrect behavior and will be lost if 
//      the code is regenerated.
//  </autogenerated>
// ------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

使用合并,您可以拒绝布局文件中的ID名称更改,但接受包含新名称的此文件.

ang*_*son 18

要回答你的问题,你会想到这个:

^Resources/Resource.designer.cs
\.sln$
\.userprefs$
\.csproj$
Run Code Online (Sandbox Code Playgroud)

Resource.designer.cs绝对不应该忽略该文件.当然,它会在某些情况下重新生成,特别是如果您更改生成的resx文件,但只是将其提交到版本控制会消除其他人的麻烦,他们不需要重新生成它.

.sln.csproj文件应该绝对不能忽视的.解决方案文件包含哪些项目是解决方案的一部分,而csproj文件包含项目信息,这两者都是您必须提交的.

.userprefs 但是它是一个本地文件,它包含使用该机器的用户的用户首选项,您不希望在版本控制中使用该文件.

这是我自己的Xamarin忽略文件,其中的评论如下:

syntax: glob
_ReSharper.*/
[Bb]in/
[Oo]bj/
*.user
*.userprefs
*.suo
.DS_Store
Run Code Online (Sandbox Code Playgroud)

第一行告诉Mercurial使用glob库来处理文件掩码.

下一行忽略ReSharper临时文件,这些文件根据项目或解决方案名称添加到它们自己的子目录中.请注意,您可以要求ReSharper使用计算机上的临时文件夹,而不是将其存储在解决方案目录中,但这可能是每用户设置,因此要确保不会意外地提交这些文件夹,请忽略夹.

然后我忽略bin和obj文件夹,处理大写和小写的第一个字母,即.Bin被忽略,bin也被忽略.

然后我用扩展用户,userprefs和suo忽略所有内容,因为所有这些都存储了本地用户首选项.

最后一个条目忽略Mac资源文件夹.

如果您有NCrunch,TeamCity或FinalBuilder,则可能需要添加其他条目:

_NCrunch_*/
_TeamCity.*/
*.fb7lck
*.fbl7
*.fbpInf
Run Code Online (Sandbox Code Playgroud)

  • 困惑为什么你说资源设计器文件_绝对不会被忽略_然后继续说它只是为了方便而不是团队其他成员的任何致命错误.基本上,你说它应该被提交,以便其他团队不必再做一次构建?这听起来不像_绝对不会被我忽视. (2认同)
  • 我不同意被忽略的resource.designer文件,它会不断地导致合并冲突,并且它不会保存任何人的任何工作,因为当你从源代码控制中提取它时仍然需要构建和运行应用程序,并且此时文件在构建时重新生成,它为团队成员节省了什么以将此文件保存在源代码管理中? (2认同)