Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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
C# 使用VisualStudio2010和HG进行版本控制_C#_Visual Studio 2010_Version Control_Mercurial_Projects And Solutions - Fatal编程技术网

C# 使用VisualStudio2010和HG进行版本控制

C# 使用VisualStudio2010和HG进行版本控制,c#,visual-studio-2010,version-control,mercurial,projects-and-solutions,C#,Visual Studio 2010,Version Control,Mercurial,Projects And Solutions,最近,我和我的团队获得了一个用于版本控制的HG存储库,因为这将使开发我们的应用程序更容易、更好 我们正在使用VisualStudio2010和c# 所有项目都处于版本控制之下 不幸的是,当我们中的一方提交时,通常另一方在打开解决方案时会出现某种错误(由于VS拥有各种文件) 我的问题是:哪些文件应该置于版本控制之下?(在我的情况下被删除了!) PS:我们有3个项目:(使用XNA)游戏,内容,测试 非常感谢 Dan以下是我从版本控制中排除的文件和目录列表(对于目录,我递归排除此目录中的所有内容):

最近,我和我的团队获得了一个用于版本控制的HG存储库,因为这将使开发我们的应用程序更容易、更好

我们正在使用VisualStudio2010和c#

所有项目都处于版本控制之下

不幸的是,当我们中的一方提交时,通常另一方在打开解决方案时会出现某种错误(由于VS拥有各种文件)

我的问题是:哪些文件应该置于版本控制之下?(在我的情况下被删除了!)

PS:我们有3个项目:(使用XNA)游戏,内容,测试

非常感谢


Dan

以下是我从版本控制中排除的文件和目录列表(对于目录,我递归排除此目录中的所有内容):


我在下面使用了Rob Conry为mercurial编写的教程(http://tekpub.com/view/hg/1 &)在tekpub。它是基于git回购协议的,最初用于VS 2K8,但在2K10上运行良好

语法:glob

*.obj 
*.exe 
*.pdb 
*.user 
*.aps 
*.pch 
*.vspscc 
*_i.c 
*_p.c 
*.ncb 
*.suo 
*.tlb 
*.tlh 
*.bak 
*.cache 
*.ilk 
*.log 
*.lib 
*.sbr 
*.scc 
[Bb]in 
[Dd]ebug*/ 
obj/ 
[Rr]elease*/ 
_ReSharper*/ 
[Tt]est[Rr]esult* 
[Bb]uild[Ll]og.* 
*.[Pp]ublish.xml 
这里还有一些:

*.ncb
*.sdf
*.ilk
*.aps
*.resharper
_ReSharper*
*.Cache

至少在
.hgignore
中需要这些:

syntax: glob
bin
obj
*.sln.cache
*.suo
*.user

根据需要添加。但不要过度忽视,因为那样会丢失数据。对于instace@Darin,其回答会导致您停止跟踪私钥文件(.snk)

这太过分了。你为什么不忽略bin和obj文件夹?@ssg-这听起来可能有点奇怪,但谢谢你的否决,因为它让我思考。我以前没有仔细考虑过忽略文件&你的问题让我想到了这一点,这很好!我想知道为什么这可能有点过分,但在回答之前,我认为我需要做更多的思考/学习。:-)这是一个忽略文件,旨在维护回购协议的可用性,在某些情况下,维护工作副本的完整性。它不是那种你必须随身携带的东西,你放得越多,它就越重。为什么要瞧不起别人为把麦子和谷壳分开而做的艰苦工作,这样你就不用这么做了?根据经验,我可以告诉你,这是这篇文章到目前为止最好的列表。@ssg您可以看到,/bin和/debug文件被忽略了,但是Visual Studio添加了一系列其他“噪波”文件,在这里详细介绍。这些文件包括测试结果、日志、用于发布的XML文件、缓存、SQL Server备份、用户文件(suo等)、调试符号等。此外,当您有一个忽略文件时,不会出现过度杀戮的情况。这太短了—当您使用MS test时会发生什么?您不想保存这些结果文件。您不需要PEM密钥、SQL二进制备份、不需要resharper文件、所有形式的日志文件等等。这将很好地工作,但它是最简单的裸机,当用户意识到“哦,该死的,为什么我们的50Mb BAK文件会进入!”时,会导致用户呻吟。Rob我反对任何关于人们使用什么的假设。这就是为什么我提供了一个最小集。我相信
.hgignore
应该有意识地构建,而不是盲目地构建。这就是我说“根据需要添加”的原因。默认情况下,VS不会生成您提到的任何文件。如果我们根据人们可能使用的工具以及将来可能生成的文件的可能性来构建.hgignore文件,.hgignore将非常大,无法维护,并且实际上可能会导致所需的文件滑出,这比源代码管理中多余的文件更糟糕。
syntax: glob
bin
obj
*.sln.cache
*.suo
*.user