2012-12-11 62 views
2

最近我开始将我的开发工作流程中的良好实践结合起来,因此我将开发服务器和生产工作流分开。我还整合了一个使用Subversion(Tortoise SVN)的版本控制系统。如何将新的/已更改的文件从开发服务器上传到生产服务器?

现在我有生产服务器(Apache共享主机)与我的本地计算机上的最新开发版本的文件同步的问题。

之前我没有这个问题,因为我通过Filezilla直接处理服务器文件。但是现在我不知道如何有效地传输文件,以及这方面的好做法是什么。

我读了一些关于Ant和Phing的内容,但我不确定这是否适合我或者是不必要的复杂性。

+0

你说什么你部署政策:等l承诺DEV必须转移到PROD,你如何组织DEV广告PROD工作区:他们是未版本控制的文件还是你的REPO的WC(以及repo - trunk的哪一部分? “SomeBranch”) –

回答

1

我不认为你想“authomatize”它,而是建立对部署和集成过程的控制。我一般都喜欢SVN,但是它有一些缺陷,我遇到的一个问题是它不支持基准 - 如果你想有一个稳定的版本来升级到更高的环境,你需要创建一个物理分支的仓库同时继续推进trunk

无论如何,你应该看看持续集成和Jenkins。这是一个相当宽泛的话题,没有给出具体的答案。有很多插入,你有什么。取决于您的应用程序平台,组件,您是否有数据库更改,是否处理外部Web服务或第三方API等。

2

Rsync是一种跨平台工具,旨在帮助解决这类情况;我曾多次将它用于类似的目的。这DevShed tutorial可能会有所帮助。

1

也许有更多结构化的解决方案,但与龟SVN你可以只导出在文件夹树结构版本之间更改的文件。然后,在Filezilla中一直上传。

看看到: http://verysimple.com/2007/09/06/using-tortoisesvn-to-export-only-newmodified-files/

  • 使用TortoiseSVN,你的工作文件夹右键单击,然后从TortoiseSVN的菜单中选择 “显示日志”。
  • 单击最后公布的修订
  • 按Ctrl +单击HEAD修订版本(或修订任何你想要 版本),因此,无论是旧的和新修订的 突出。
  • 右键单击突出显示的修订版本,然后选择 “比较修订版本”。这将打开一个对话框,其中列出所有 新的/修改过的文件。
  • 从这个列表中选择所有文件(按Ctrl + A),然后右键单击 突出的文件,并选择“导出选择项...”
0

旁注:

您必须打开有关您的工作流和配置的更多细节 - 适用的解决方案取决于它。我在游戏中看到了4个主要节点:Workplace,Repo Server,DEV,PROD,一些节点可能是联合的(1 + 2,2 + 3),可能有不同的工具集(你有SSH,Rsync,NFS,Subversion DEV | PROD上的客户端)。所有的细节问题

在任何情况下 - Subversion版本库有这样的事情,如hooks,你的情况post-commit hook(在资源库服务器端后,每次提交执行)可用于

如果这个钩子(任何代码,它可以在无人参与模式下执行),您可以定义和实施任何规则,以在任何条件下执行部署到任何目标。你必须只知道

  • ,而交通将用于传输文件
  • 什么是服务器上的网站空间(只是干净的版本的文件,工作副本 - 既解决了亲和反套) - 它将定义,这部署政策(“出口”或“更新”),您必须在钩

Some links to scripts,其中出口文件,受修订版本(或修订版本的范围),版本控制的树来实现

相关问题