如何使用SVN管理网站?

时间:2013-01-16 20:01:55

标签: svn version-control

我们的网络服务器上有4Gb数据。

我们考虑使用Subversion(SVN)来提高可靠性并消除我们网站(4 Gb,主要是图像,Flash和视频)以及我们开发的其他网站上的数据丢失。

我在主站点上使用SVN的想法如下:

  • 为我们直接编辑的这些文件提供单独的SVN存储库(例如.html文件,.pl和.pm文件等)
  • 有第二个SVN存储库来存储我们主站点的整个4 Gb转储,作为一个复杂的备份平均值(能够在错误恢复的情况下与稍后的更改合并)。
  • 为我们开发的其他网站提供更多SVN回购。

我问:

  • 是否具有SVN的快速性和可扩展性,适用于4 Gb版本?提交需要多长时间?
  • 在我们的网站上有两个单独的存储库,所有数据和代码都是一个好主意吗?
  • 您是否可以向我们提供(可能是Bash或Perl)脚本,以帮助我们根据请求更新服务器的httpdocs /?
  • 有两个Web服务器是什么,一个运行HEAD进行调试,另一个运行稳定的外部Internet分支?
  • 如何轻松管理我们服务器上托管的多个站点的多个SVN存储库? (任何提示?)
  • 如何使用SVN管理数据库(MySQL)备份?

已添加:我们不需要存储二进制文件的增量。我们服务器上的二进制文件通常不会改变。但是我们需要一个快速的方法来计算二进制文件是否发生了变化。

2 个答案:

答案 0 :(得分:1)

Subversion不是替代品,也不是常规备份和备份策略的竞争对手!!!

您必须使用正确方法中的每个工具(tm)!

答案 1 :(得分:0)

SVN擅长源代码控制(这是它的设计目的)。任何源代码控制系统都是如此,您要求它管理的非源代码越多,您可以期望的满意度就越低。

Maven存储库擅长二进制代码管理(这是它的目的)。您基本上可以检入任何特定文件(具有最小的“maven项目结构”),然后Maven可以提供它以满足其他项目可能具有的“依赖性”。

也许是一个SVN签到Maven项目的源代码(又名HTML / Javascript / CSS /等)的东西,以及Maven项目中的二进制文件(图像,视频,PDF等)的依赖项?然后,您将拥有一个类似于:

的部署过程
  1. 结帐到构建位置,(svn checkout
  2. 建立网站(mvn install,这将吸收相关的二进制文件)
  3. 将网站(mvn package可能打包到zip文件或tar.gz)。
  4. (稍后)根据活动配置文件(生产,开发)将网站(mvn deploy可能部署到不同的位置)
  5. 无论你做什么,避免以下反模式,它们会让你比你想象的更悲伤:

    1. 不要直接签到要部署的Web服务器。
    2. 不要跳过网站的包装,否则将难以/无法回滚(甚至确保完全部署)。
    3. 不要期望在实时目录中开发网站。习惯开发网站,构建网站,在本地部署网站(Maven可以轻松实现),然后检查更改(如果看起来不错)。
    4. 尝试重新设计您的网站以允许部署到任何计算机/目录位置,以便在上线之前在验证服务器/位置“启动网站”。 Maven提供“配置文件”,可以帮助分离实时站点和通用开发人员站点。请记住 aviod Maven site目标,因为您正在开发的产品,这是用于跟踪进度的管理产品 /产品质量(您开发的网站)。

      最终使用SVN / Maven,您可以在Jenkins服务器上工作,为您执行“主线”构建。稍后您可以添加Selenium服务器进行自动化集成测试,并使用持续部署实践,但一次只需一小步。选择这条路并不错,但除非你已经熟悉这些工具,否则你可能需要学习一些东西。