从SVN退房后项目是否应该成功建立?

时间:2013-10-29 15:20:15

标签: svn

每当我从我们的SVN结账项目时,他们都没有建立。  要么是因为他们正在访问我在开发机器中没有安装的GAC中的旧库。  或者因为他们指向随时间变化的外部因素。  或者他们只是没有项目箱中包含所需的dll。

我的问题是,始终确保项目始终成功构建是最佳做法吗?或者这只是根据具体情况而定?

3 个答案:

答案 0 :(得分:4)

是。

(我需要输入更多字符,但实际上也没有理由......检查源代码并运行单个命令应该构建项目是无可争议的最佳实践)

William Pursell提出了一些很好的观点。我确实相信答案就像是一样简单。然而,检查dv到svn几乎和scavanger寻找他们一样糟糕。 当然会有关于工具链的假设 - 检查编译器或glibc之类的东西是不合适的,这些会由你的机器上的包管理器处理。

详细说明:

  1. 新的团队成员应该能够按照有关如何安装所需工具的文档查看源代码并运行构建。
  2. 通过检查二进制文件(dll或jar)到svn来获得第一名将导致糟糕的时间。
  3. 如何获得这些必需的库是非常平台和工具链特定的。这完全是java(maven和ant / ivy)中解决的问题,.NET对nuget提供了不错的支持。我使用的系统使用了这些工具的混合物,这些工具甚至可以与旧学校的c ++一起使用,以获得像boost这样的图书馆。重要的一点是,在源代码中检查了一些描述这些依赖关系以及如何解决这些依赖关系的清单。
  4. 可以做到,并且可能有很大的价值。

答案 1 :(得分:1)

这是一个非常主观的问题,因此有很多答案。但是,依赖关系跟踪和解决是包管理工具最好解决的问题。版本控制系统不是包管理工具,并且(在我看来)尝试使用它本身就是一个巨大的错误。项目是否应该从vcs构建?是的,在满足所有依赖关系的开发人员的盒子上。它应该在任意系统上从头开始构建吗?不,这就是发布tarball的用途。许多项目都喜欢将VCS用作主要的部署系统,这会使问题混乱。应使用VCS跟踪软件的历史记录,而不是部署或解决依赖关系。所以,我相信答案是合格的“不”。

答案 2 :(得分:0)

让我们构建一下

,应该有一种方法来构建源代码,理想情况是从存储库本身内的简单,维护良好的指令;通常,代表顶层的INSTALLREADME。需要有一个人的工作就是确保它存在并且是最新的。

no ,要求每个分支上的每次签到都满足此要求是不合理的。对于“生产”或“稳定”的分支机构来说,这是一个很好的要求,同样,记录在案的政策也是理想的。