Visual Studio 2010 C#解决方案中的哪些文件/文件夹应该进入Mercurial DVCS?

6 mercurial visual-studio-2010

我正在使用Google Code来托管我的C#项目.它有一个包含一个类库和一个测试项目的解决方案.我正在使用Visual Studio 2010.

我使用的客户是TortoiseHG.

在Windows资源管理器中,首先我克隆了一个空文件夹,并在其中获取了.hg文件,以便它与我的托管代码相关联.现在,我创建了一个新的C#项目,并复制了我的根源代码控制文件夹中的所有文件.我将在此后继续努力.

提交时,我的解决方案文件夹中有很多文件和文件夹,而不是所有文件和文件夹都是代码.通常我只是构建并取出EXE或DLL而从未真正打扰过其他东西.现在我觉得并非所有文件和文件夹都对源代码控制很重要.

我是源代码控制的新手.

哪些文件/文件夹应该进入源代码控制,除了实际的代码文件本身?

Abe*_*bel 5

好问题!我使用的经验法则如下:

  1. 签入文件夹中的所有文件以获得完整的树
  2. 稍微研究一下,注意Pending Checkins
  3. 待处理但尚未触及的文件是在您保持项目设置时更新的Visual Studio文件.
  4. 现在仔细:对*.sln,*.csproj和其他项目文件也将改变,这些必须进行检查.
  5. 其他文件,尤其是 可以将"查看"二进制文件(例如在objdir和*.suo文件中)标记为排除列表.

您可能决定包含DLL或EXE的内置版本,但这不是必需的,因为任何加载项目的人都可以构建它.现在,下一步是:

  • 在你工作了一下并认为你已经创建了一个稳定的文件列表之后,将整个项目放到另一个位置并立即编译.它有用吗?它错过了文件吗?

如果最后一步有效(并且您应该定期检查),那么您的文件就有了坚实的基础.

注意:一些工具从内部支持Visual Studio并且知道应该或不应该包含哪些文件,即对于SVN我知道VisualSVN在跳过不需要的文件方面做得相当不错.


还有两个拇指规则(哦,三个,实际上):

  • 具体说明你所排除的内容,在你所包含的内容中要自由:包括太多而不是太少;
  • 一些可以安全排除的扩展:( *.user任何项目的根目录),\obj\**(都在临时文件obj夹下)*.vspscc*.vssscc(项目的根目录),*.suo并且取决于你的偏好:\bin\**.
  • 哦,对于网站项目,这些可能包含或添加PrecompiledWeb您的解决方案的目录,您真的不想签入:在此处排除所有.

编辑:SO上的这个问题有一个非常广泛的文件列表,可以忽略Visual Studio.