2008-08-26 36 views
3

在现场网站上维护备份和修订控制的最佳解决方案是什么?在现场网站上维护备份和修订控制的最佳解决方案是什么?

作为我工作的一部分,我与几个实时网站合作。我们需要一种有效的方法来维护活动文件夹的备份。此外,更新这些网站可能会很痛苦,特别是如果出于某种原因在现场环境中发生变化。

什么是理想的将是无忧的源代码管理。我实现了SVN一段时间,这是一个很好的备份以及修订控制(容易恢复临时或重大更改)的半解决方案等。

不幸的是SVN的地方.SVN隐藏的目录到处造成问题,尤其是当其他开发人员进行文件夹结构更改或复制/移动网站目录。我听说过这是一个教育等问题,但SVN采取的方法对我们来说根本不是一个实际的解决方案。

我在想,也许增量备份解决方案可能会更好。

其他可能性包括:

  1. SVK,这是唯一的命令行成为一个问题。此外,我不确定这是多么恰当。
  2. Mercurial,可能带有一些触发器来隐藏分布式组件,在这种情况下不需要这些分布式组件,并且对于其他开发人员来说会不必要地复杂化。

    我使用Mercurial进行了简短的实验,但找不到一个让存储库独立并保持与活动文件夹工作副本不间断同步的好方法。也许作为源控制解决方案(使存储库和活动文件夹位于同一地点)与另一个备份解决方案相结合,这可能是一条可行的路。水银的

    一个缺点是,它不把源代码管理下的空文件夹这是网站往往具有空文件夹的文件上传等

  3. Rsync,我还没有真正的占位符的位置问题调查。

我真的很感激你的建议,最好的方式来维护备份的实时网站,理想情况下与一个简单的方法快速检索过去的版本。

答案回复:

  • @Kibbee

    • 这不是这么多关于教育与任何东西,但VSS不熟悉和缺乏时间/精力学习还要别的吗。

    • xcopy/7-zip方法听起来很合理我猜,但它会很快占用大量的空间吗?

    • 至于源代码管理,我想我想让源代码管理只是说“这是现在文件夹的状态,我会处理,如果我不能匹配的东西,那就是你的错,我只会开始新的历史“,而不是难倒。

  • @Steve中号

    • 是啊,这做的更好的方式,但需要显著的文化变革。说完我非常喜欢这种方法。
  • @mk

    • 不错,我也没多想使用rsync部署。这只会上传差异吗?每次我们进行更改时,覆盖整个实时目录会因站点停机而出现问题。

我仍然好奇,想看看是否有任何更多的传统选项

回答

4

您仍然可以使用SVN,但不是在真实环境中做了结账时,没有做一个出口,这样, .svn目录将被创建。不利的一面是,您的实时环境无法进行任何代码更改。这是一件好事。

作为一般规则,不应允许生产系统上的代码更改。应该在开发/测试/ UAT环境中进行更改并进行测试,然后一旦确认为OK,就可以使用RELEASE-x-x-x之类的方式在SVN中标记该代码。然后,在实时系统上,使用该标签导出代码。

1

如果您正在移动,删除或添加文件并且不告知源代码管理系统,您选择的任何源代码控制解决方案都会出现问题。我不知道任何可以解决此问题的源代码管理项目。

如果你不能教育项目工作人员[1],那么你可能只需要每日快照。像使用xcopy到网络驱动器的批处理文件一样简单,并且可能在命令行上使用7-zip来压缩它,使其不占用太多空间,这可能是最简单的解决方案。

[1]我高度不相信这个,可能更多的是一个人太固执,不愿意学习或者做“额外工作”的情况。 Nevermind当源代码管理不得不返回到以前的版本时可以节省多少时间,或者2个人编辑过相同的文件。

2

我们使用选项3. Rsync。我写了一个bash脚本来做这个以及一些额外的检查,但这里是它的基本功能。

  1. 为推送生活做个标签。
  2. 在该标签上运行svn导出。
  3. rsync生活。

到目前为止,它一直在努力。我们不必担心用户冲突,也不必担心单独的用户在生产机器上运行svn。

+0

你好,你可以分享该bash脚本,我想实现一个相同的方法。非常感谢。 – 2009-03-09 11:15:13

1

rsync只会上传差异。我还没有亲自使用它,但Mark Pilgrim很久以前写过关于它如何甚至handles binary diffs brilliantly

svn + rsync听起来像一个奇妙的解决方案。我将不得不在未来尝试。

相关问题