我在一个使用SVN作为源代码库的环境中工作。例如,我的代码库如下:
//svn
-folder1
-file1
-file2
-folder3
-file4
-file5
但是当这些部署到生产/测试服务器=>目录结构非常不同,只需要推送文件=>在目标服务器的相关文件夹中
例如:
//d/src/datastream
-file1
-file2
-file3
-file4
目标服务器没有安装svn。现在它通过复制文件作为手动过程完成。 现在变得有点难以追踪复制的目标文件的版本,因为这是由不同的开发人员完成的。
如何通过将文件推送到相关目标文件夹并跟踪正在推送的svn版本来自动化此部署过程。
由于
答案 0 :(得分:2)
您可以编写脚本来为您完成所有这些操作。
该脚本将检查工作副本的存储库修订,并将其(以及时间戳)记录在服务器上的日志文件中。然后,脚本将每个文件复制到目标目录。每次将新版本“推送”到服务器时,日志文件都会有一个新条目,指示服务器更新的时间以及更新后的版本。
您应该能够以您选择的任何语言编写此脚本。安装命令行Subversion工具可以使这更容易。
您还可以在文件标题中添加注释块,并添加值$Rev$
和$LastChangedDate$
。当文件被提交时,svn将更新这些值,以便在您签出文件时,它将显示上次更改的修订版本和日期。
答案 1 :(得分:1)
也许这会是另类选择:
在部署代码时创建SVN tag。
Export将所需代码中的代码添加到目录
复制/移动/删除文件以匹配部署服务器上的显示方式
制作一个tar包
复制服务器上的存档
将您的网站置于维护
打开arhive
测试
停用维护模式
这可以非常简单地通过shell脚本自动化,您可以将参数传递给适当的SVN标记名称。
答案 2 :(得分:0)
自动部署的经验不多,但希望每次部署时都标记文件。
此外,您可能需要查看用于自动执行此类操作的Hudson。