1
2
我正在使用Tortoise SVN进行小型系统ASP.NET开发。大多数代码是解释ASPX的,但是有大约12个二进制DLL是由手工编译步骤生成的。虽然理论上对这些源代码进行版本控制没有多大意义,但它确实使确保它们从开发环境正确镜像到生产系统(单击一下)变得很方便。另外,在发生灾难的情况下,回滚到上一步是再次单击SVN。 所以我咬了一口子弹,把它们放进了SVN的档案中——方便是真实的,重复的,超过了成本,这是在幕后承担的。 |
2
4
我们不支持使用存储库本身包含的脚本自动生成的版本文件。原因是签出之后,可以通过单击或命令重新生成这些文件。在我们的项目中,我们总是尽可能地简化这一过程,从而避免了对这些文件进行版本控制的需要。 我可以想象的一个场景是,如果为产品的特定版本添加“标签”,在生产环境(或任何非开发环境)中使用,而生成输出所需的工具可能不可用,那么这一点会很有用。 我们还使用构建脚本中的目标,该脚本可以创建和上传我们产品发布版本的存档。这可以上传到生产服务器,或者HTTP服务器,供产品用户下载。 |
3
1
不一定,尽管源代码管理的最佳实践建议您不要包含生成的文件,原因很明显。 是否还有其他方法可以将生成的文件发布到其他地方进行下载,而不是依靠版本控制作为下载服务器? |
4
1
通常,派生文件不应存储在版本控制中。在您的案例中,您可以构建一个发布过程,创建一个包含派生文件的tarball。 正如您所说,将派生文件保存在版本控制中只会增加您必须处理的噪声量。 |
5
0
在某些情况下,我们会这样做,但它更多的是一种系统管理类型的用例,在这种用例中,生成的文件(例如,从脚本构建的DNS区域文件)对其自身的权利具有内在的兴趣,并且修订控制比分支和标记源控制更为线性的审计跟踪。 |