使用源代码管理时,实际应该提交哪些文件?

时间:2010-12-28 01:02:31

标签: c# svn

我正在开发一个小型项目,托管在Google Code上,使用SVN进行源代码管理。这是我第一次使用源代码控制,我对实际应该提交到存储库的内容感到有点困惑。我的项目很简单:一个用C#编写的类库项目。我写的实际代码是单个文件。

我的问题是:我应该提交整个项目(包括调试,发布,属性等目录)还是只提交我的主.cs文件?


在与Subversion战斗了一段时间后(注意自己:做重置存储库),看起来我终于让它正确处理了正确布局的目录。

6 个答案:

答案 0 :(得分:13)

你应该提交除输出文件以外的所有内容。

这意味着提交除\bin\obj目录(及其中的文件)之外的所有内容。

答案 1 :(得分:10)

对于普通开发我不承诺:

  • OBJ
  • *。用户
  • *。锁

我承诺的其他一切。对于将发送给客户的版本,我还提交了我发送的确切二进制文件。

答案 2 :(得分:9)

您应该包含构建项目所需的所有内容,而不是项目生成的任何内容,因为有人重新编译它将能够通过编译生成这些内容。

如果C#项目是您的解决方案文件( .sln),您的项目文件或文件( .csproj)和源文件( .cs)和任何资源文件( .resx,* .bmp,* .png等)。这包括Properties文件夹中的文件,因为它们包含项目的全局设置。

您不在Debug / Release中提交任何内容,这些是构建项目的输出。根据经验,您不会提交二进制文件(* .dll,* .exe)。

作为测试,如果您已经提交了足够的内容,请将源代码检出计算机上的其他目录并尝试重建项目。

答案 3 :(得分:3)

你绝对不想提交构建的库,没有。源控制实际上只是源代码。现在,在.NET项目设置之类的东西中,您也可以将项目文件和解决方案文件视为源,这很好。 (但不是.user或.suo文件,请保留这些文件。)但是,共享已编译二进制文件的团队会遇到麻烦。二进制文件通常很好,例如引用的DLL。只是不是代码的预期构建二进制文件。

基本上,提交您需要的所有内容(并且您需要的内容,至少在项目的代码层次结构范围内)以构建项目的完整版本。但是不要提交实际构建的输出。

答案 4 :(得分:3)

我承诺除了:

之外的一切
  • \ bin目录
  • \ _ obj目录
  • .suo和.user文件

有关最后一位的详细信息,请参阅this question

答案 5 :(得分:3)

提交:

  • 源文件和文件夹

  • 资源(XML,CSS,ini文件......)

  • 非生成二进制文件(图片, 图标,声音..)

不要提交:

  • 编译文件(exe,dll,jar)

  • 生成的源文件

  • 机器配置特定文件, 即包含说文件路径的文件 到您计算机上的某个本地文件 这可能完全不同 放在我的电脑上。