SVN部署过程

时间:2010-08-26 00:05:24

标签: svn deployment tortoisesvn

我在一个使用SVN作为源代码库的环境中工作。例如,我的代码库如下:

//svn
 -folder1
   -file1
   -file2
-folder3
   -file4
   -file5

但是当这些部署到生产/测试服务器=>目录结构非常不同,只需要推送文件=>在目标服务器的相关文件夹中

例如:

 //d/src/datastream
     -file1
     -file2
     -file3
     -file4

目标服务器没有安装svn。现在它通过复制文件作为手动过程完成。 现在变得有点难以追踪复制的目标文件的版本,因为这是由不同的开发人员完成的。

如何通过将文件推送到相关目标文件夹并跟踪正在推送的svn版本来自动化此部署过程。

由于

3 个答案:

答案 0 :(得分:2)

您可以编写脚本来为您完成所有这些操作。

该脚本将检查工作副本的存储库修订,并将其(以及时间戳)记录在服务器上的日志文件中。然后,脚本将每个文件复制到目标目录。每次将新版本“推送”到服务器时,日志文件都会有一个新条目,指示服务器更新的时间以及更新后的版本。

您应该能够以您选择的任何语言编写此脚本。安装命令行Subversion工具可以使这更容易。

您还可以在文件标题中添加注释块,并添加值$Rev$$LastChangedDate$。当文件被提交时,svn将更新这些值,以便在您签出文件时,它将显示上次更改的修订版本和日期。

答案 1 :(得分:1)

也许这会是另类选择:

  • 在部署代码时创建SVN tag

  • Export将所需代码中的代码添加到目录

  • 复制/移动/删除文件以匹配部署服务器上的显示方式

  • 制作一个tar包

  • 复制服务器上的存档

  • 将您的网站置于维护

  • 打开arhive

  • 测试

  • 停用维护模式

这可以非常简单地通过shell脚本自动化,您可以将参数传递给适当的SVN标记名称。

答案 2 :(得分:0)

自动部署的经验不多,但希望每次部署时都标记文件。

此外,您可能需要查看用于自动执行此类操作的Hudson