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

时间:2013-08-08 06:31:28

标签: version-control mercurial xamarin.android xamarin dvcs

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

^bin/
^obj/
^Components/
\.keystore$

我不确定这些文件:

^Resources/Resource.designer.cs
\.sln$
\.userprefs$
\.csproj$

谢谢!

更新
找到这个伟大的社区维基,确认不包括* .pidb和 * .userprefs和暗示确认包括* .sln和* .csproj
请参阅:.gitignore for Visual Studio Projects and Solutions

我没有卖掉包括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>
// ------------------------------------------------------------------------------

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

2 个答案:

答案 0 :(得分:17)

要回答你的问题,你会对此感到疑惑:

^Resources/Resource.designer.cs
\.sln$
\.userprefs$
\.csproj$

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

{strong}绝对不 .sln.csproj文件会被忽略。解决方案文件包含哪些项目是解决方案的一部分,而csproj文件包含项目信息,这两者都是您必须提交的。

然而,

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

这是我自己的Xamarin忽略文件,下面有评论:

syntax: glob
_ReSharper.*/
[Bb]in/
[Oo]bj/
*.user
*.userprefs
*.suo
.DS_Store

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

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

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

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

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

如果你有NCrunch,TeamCity或FinalBuilder,你可能还想添加其他条目:

_NCrunch_*/
_TeamCity.*/
*.fb7lck
*.fbl7
*.fbpInf

答案 1 :(得分:4)

这几乎是我的.gitignore文件的样子:

*.pidb
*.userprefs
bin
obj
.DS_Store
*.suo

更一般地说,那些是您不需要的文件(因此您需要其他文件)。