【问题标题】:When using source control, what files should actually be committed? [duplicate]使用源代码管理时,应该实际提交哪些文件? [复制]
【发布时间】:2010-12-28 01:02:31
【问题描述】:

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

我的问题是:我应该提交整个项目(包括 Debug、Release、Properties 等目录)还是只提交我的主 .cs 文件?


在与 Subversion 斗争了一段时间后(自我注意:不要重置存储库),看起来我终于可以使用正确布局的目录了。

【问题讨论】:

标签: c# svn


【解决方案1】:

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

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

【讨论】:

  • 如果我将trunk 设置为src 文件夹,所有这些都应该放在那里吗?
  • 是的,应该。真正要做的最好的事情是查看一些开源 C# 项目,看看他们如何构建他们的项目以及他们签入的文件。如果有疑问,最好模仿你尊敬的人。
  • .suo 和 .user 那些在源代码管理中没有用的呢
  • @ScottS:确实如此。还有很多其他文件您不应该签入。不过,“提交除输出文件之外的所有内容”是准确的。
  • @ScottS - 确实,还有一些其他文件不应该提交。
【解决方案2】:

对于普通开发我不承诺:

  • bin
  • 对象
  • *.user
  • *.suo

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

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

    • +1 表示“作为测试,如果您已提交足够多的内容,请将源代码检出到计算机上的其他目录并尝试重建项目”
    【解决方案4】:

    您绝对不想提交已构建的库,不。源代码控制实际上只是针对源代码。现在,在 .NET 项目设置中,您还可以将项目文件和解决方案文件视为源文件,这很好。 (但不是 .user 或 .suo 文件,将它们排除在外。)但是共享已编译二进制文件的团队会遇到麻烦。二进制文件一般都很好,例如引用的 DLL。只是不是代码预期构建的二进制文件。

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

    【讨论】:

    • Just not the code's intended built binaries.: 这些文件应该放在trunk/build吗?
    • @SimpleCoder:在诸如/build/ 之类的文件夹中,我直觉地期望找到用于构建(甚至可能部署)项目的脚本,例如 NAnt 或 Rake 文件(它们本身就是源文件) .也许还有其他一些支持构建的东西。但是源代码控制层次结构通常不应该在任何地方都有其项目的构建输出。开发人员从源代码​​管理中获得的是他们构建项目所需的东西,而不是构建的输出。
    【解决方案5】:

    我承诺一切,除了:

    • \bin 目录
    • \obj 目录
    • .suo 和 .user 文件

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

    【讨论】:

      【解决方案6】:

      提交:

      • 源文件和文件夹

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

      • 未生成的二进制文件(图像、 图标、声音……)

      不要提交:

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

      • 生成的源文件

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

      【讨论】:

        猜你喜欢
        • 2010-11-19
        • 2019-01-23
        • 2016-01-03
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多