每当我从我们的SVN结账项目时,他们都没有建立。 要么是因为他们正在访问我在开发机器中没有安装的GAC中的旧库。 或者因为他们指向随时间变化的外部因素。 或者他们只是没有项目箱中包含所需的dll。
我的问题是,始终确保项目始终成功构建是最佳做法吗?或者这只是根据具体情况而定?
答案 0 :(得分:4)
是。
(我需要输入更多字符,但实际上也没有理由......检查源代码并运行单个命令应该构建项目是无可争议的最佳实践)
William Pursell提出了一些很好的观点。我确实相信答案就像是一样简单。然而,检查dv到svn几乎和scavanger寻找他们一样糟糕。 当然会有关于工具链的假设 - 检查编译器或glibc之类的东西是不合适的,这些会由你的机器上的包管理器处理。
详细说明:
可以做到,并且可能有很大的价值。
答案 1 :(得分:1)
这是一个非常主观的问题,因此有很多答案。但是,依赖关系跟踪和解决是包管理工具最好解决的问题。版本控制系统不是包管理工具,并且(在我看来)尝试使用它本身就是一个巨大的错误。项目是否应该从vcs构建?是的,在满足所有依赖关系的开发人员的盒子上。它应该在任意系统上从头开始构建吗?不,这就是发布tarball的用途。许多项目都喜欢将VCS用作主要的部署系统,这会使问题混乱。应使用VCS跟踪软件的历史记录,而不是部署或解决依赖关系。所以,我相信答案是合格的“不”。
答案 2 :(得分:0)
让我们构建一下
是,应该有一种方法来构建源代码,理想情况是从存储库本身内的简单,维护良好的指令;通常,代表顶层的INSTALL
或README
。需要有一个人的工作就是确保它存在并且是最新的。
但 no ,要求每个分支上的每次签到都满足此要求是不合理的。对于“生产”或“稳定”的分支机构来说,这是一个很好的要求,同样,记录在案的政策也是理想的。