从 SVN 运行 Web 应用程序框架是否合理?

从 SVN 运行 Web 应用程序框架是否合理?

我正在看 Django[http://www.djangoproject.com/],整个系统似乎都倾向于通过 SVN 进行部署。当您没有从 SVN 主干读取时,文档会发出警告;#django 中的人们声称遵循 SVN 机制更容易。

我的直觉是只使用 Djangoapt-get并通过 Ubuntu LTS 接收更新。我得到了一些同行评审、自动部署和版本化依赖项。这些人疯了吗,还是我错过了什么?

答案1

从 svn 运行它是完全合理的。现在,从 svn trunk 运行它就不合理了。一点也不合理。

如果您在主干上,您如何知道您正在运行什么?不,在主干上运行开发和测试机器。当您准备好发布时,通过标记所有内容来发布。将登台服务器更新为这些新标签并进行测试。如果一切顺利,也更新生产服务器。

无论它是您的 svn 服务器还是其他人的 svn 服务器,情况都是如此。

答案2

我不得不说,从您自己的 SVN 存储库运行 Web 应用程序非常明智(尽管您需要小心提交的内容!),但从其他人的 SVN 存储库运行它可能会带来麻烦。您可能想要做的是设置一个本地存储库,它是官方存储库的一种“门控镜像”。您可以将官方源拉入分支,对其进行测试,然后在您对其有信心时将其移动到主干(或任何地方)。

我唯一真正反对的是,你(作为必须保持 Web 应用程序运行的人)无法控制 Django SVN 存储库。至少使用 Ubuntu 软件包,你可以确信除了开发人员之外,其他人已经查看过它并发现它至少是半稳定的。而且首先更新测试系统很容易。

答案3

如果您使用的是已发布的分支,则从 SVN(或其他源代码控制服务器)运行是有意义的。它确保关键安全更新(发生在脚本 Web 应用程序上的频率远高于二进制应用程序)得到频繁应用。由于大多数客户使用 SVN 来下载 Web 应用程序的更新,因此您经常会发现 apt-get 存储库(或其他分发存储库)更新频率较低,并且您会错过新功能和安全补丁。此外,由于 Web 应用程序往往会快速“变异”并频繁引入破坏向后兼容性的更新,因此当软件包最终更新时,您的特定应用程序出现故障的可能性会更大。

例如,Apache 2.2.11 是当前版本,于去年 12 月发布。如果我没记错的话,我唯一的 Ubuntu 服务器(托管一个特定应用程序)运行的是 2.2.8。我似乎找不到 httpd-2.2 分支中发布日期的方便表格,但存档站点说 changes-2.2.8 于 2008 年初发布。在同一时期,Zend Framework 主干从 5 万行代码增长到 2 千万行代码。

如果我是你,我会将 svn:externals 与基础包一起使用,然后将自己的修改添加到 subversion 存储库,并随时关注与你的 Web 应用依赖项相关的安全警告。如果你正在进行持续集成,你可以在你的环境中使用你的修改运行测试套件,这样你就可以知道各种主干和分支何时针对你的特定用途保持稳定,并且可以在发现安全漏洞时随时更新。

答案4

我们在 SVN 工作副本上运行内部 Web 应用程序 (CMS)。这样可以更轻松地从存储库更新它,如果我们进行了更改并希望将其提交回去,我们可以轻松完成。到目前为止没有问题。

相关内容