Version control 您是否将非代码文件(如DLL、图像和flv)放入版本控制中?

Version control 您是否将非代码文件(如DLL、图像和flv)放入版本控制中?,version-control,Version Control,嗯,相对而言,它们不会经常改变,但积极的一面是,你可以查看一个网站,期待它在本地机器上正常运行 你是做什么的?是的。我们经常将外部依赖项和构建所需的任何其他内容置于源代码控制之下。通过这种方式,我们可以确保一台干净的机器可以登记到源代码中并从sctratch构建,而不需要有人手动在其上安装东西。通常是的。您应该能够从源代码管理获取一个项目,并在与构建环境其余部分断开连接的干净机器上构建它,而无需进一步干预 对于很少更改的文件,或者对于一般的二进制文件,源代码管理提供程序可能会提供一些选项,如“每

嗯,相对而言,它们不会经常改变,但积极的一面是,你可以查看一个网站,期待它在本地机器上正常运行


你是做什么的?

是的。我们经常将外部依赖项和构建所需的任何其他内容置于源代码控制之下。通过这种方式,我们可以确保一台干净的机器可以登记到源代码中并从sctratch构建,而不需要有人手动在其上安装东西。

通常是的。您应该能够从源代码管理获取一个项目,并在与构建环境其余部分断开连接的干净机器上构建它,而无需进一步干预

对于很少更改的文件,或者对于一般的二进制文件,源代码管理提供程序可能会提供一些选项,如“每次修订存储整个文件”-此设置可防止源代码管理程序在签入新vision(适用于ASCII文件,但不适用于二进制文件)时尝试计算差异

另一方面,如果有一个网络驱动器或类似的东西,构建项目的所有计算机都可以使用它,那么只要确保您对该远程系统上的备份过程感到满意,就可以不引用该远程资源(无论是真正的驱动器还是映像的URL)

源代码管理提供了两个重要特性:开发人员之间的源代码共享和源代码备份—很多人都忘记了第二个特性,直到为时已晚:)我以前也包括过一次。我吸取了教训!哈哈。

我将所有“原始资料”放入版本控制,包括图像、外部罐子/库和其他用作输入或资源的数据文件

我不会将任何生成的工件放入版本控制中。也就是说,构建生成的任何内容都被视为“忽略”或“私有”——不受源代码控制

一般来说,我觉得另一个开发人员应该能够签出项目并执行一次单击(或一次命令)构建来生成产品的工作实例。执行此操作后,开发人员的视图不应包含任何版本受控源代码的增量


也就是说,构建应该能够在代码的“锁定”版本上完成,而不需要执行任何签出等操作,也不需要获取任何额外的外部依赖项(一般来说)。

是的,我们甚至将用于构建产品的工具置于源代码控制中

一次同步,您就拥有了构建产品所需的一切。如果您不这样做,您将引入一些非确定性-不手动更新非签入依赖项的开发人员将浪费时间跟踪其测试机器上的错误配置问题。

是的,我们会

您应该能够从源代码管理中获得项目,并且拥有构建所需的一切,而无需跳转

没有什么比浪费时间试图找到要成功构建的依赖项更糟糕的了(

是的,大部分是

我唯一不受源代码管理的文件是网站“内容”,主要包括网站用户上传的图像和文档。构成网站“外观”的图像(通常在母版页上,或通过CSS加载)不可编辑,进入源代码管理

DLL和编译站点所需的其他项目(或站点功能所需的项目,如javascript)肯定包括在内。开发人员应该能够从源代码管理中查看网站,并拥有工作站点所需的一切。

还有将数据库转储放入版本/源代码管理的方法


尤其是数据库的模式在开发过程中不断变化的情况下。(我知道,这完全是另一个主题)

是的!一个很好的经验法则:如果您的构建过程生成了它,不要检查它。如果没有,应该对它进行版本控制。支持文档(需求、设计、UAT电子邮件等)呢?我非常同意这一点。应该包括不寻常的构建工具或检查它们的输出。不是每个人都有(或需要)他们机器上的VHDL/Verilog编译器。我不明白为什么你认为Diff不适合存储二进制文件。Subversion做得很好,并因此节省了空间…了解Subversion很好-但我更关心的是时间而不是空间。当每次修订都要将Diff应用到75%的字节时,回滚或forwa在你的源历史中,rd变得凶残,特别是当你的团队中有100多人时:)