SVN:如何将阶段设置为子分支

时间:2012-11-05 00:16:11

标签: svn ssh merge symlink stage

嗨,这是我的SVN结构:

TRUNK
BRANCH
    --STAGING
TAGS
    --tag1

所以这里的目标是在子分支“STAGING”上进行所有开发,一旦准备好生产,所有更改都将合并到tag1并滚动到TRUNK(生产)

如何将TRUNK设置为public_html生产和登台到Public_html登台

您可以在此处查看服务器文件夹结构

 /var/svn/projects/ (trunk, branch and tags are here)

/home/production/public_html <--- producction
/home/staging/public_html <-- staging

当我提交暂存时,我希望它可以在登台网站上发布。

1 个答案:

答案 0 :(得分:0)

看看Jenkins。这是一个持续构建系统,但其中的一个功能是观察Subversion URL并对更改采取措施。例如,您可以拥有一个暂存分支,当Jenkins检测到更改时,它将签出或导出服务器上该分支上的文件。

最简单的方法是让Jenkins在您的登台服务器上运行。詹金斯本身使用的资源很少,所以它应该不是问题。在Jenkins上设置作业以观察您的暂存URL。设置作业,因此作业的工作目录是您的临时区域的网站URL。 (这可以在作业本身轻松配置)。然后,当Jenkins看到暂存URL发生更改时,它将更新暂存区域。

更好的想法是拥有两个目录。您有实际的暂存目录,以及另一个作为下一个暂存区域的目录。 Jenkins可以对其他目录执行svn export,然后将旧的临时目录移开,并将新目录移动到临时目录。这样,当Jenkinds进行更新时,您的暂存目录不会处于不一致状态。更好的是,Jenkins可以将您的服务器上下移动,作为移动新暂存区域的一部分。

顺便说一句,詹金斯是开源的,可以免费使用。它也很容易设置。它是一个包含它自己的网络服务器的jar文件。只需运行java -jar jenkins.war,它就会在您的服务器上运行,并在端口8080上运行。(可以通过传递参数轻松更改端口)。其他一切都非常自我解释。单击新作业链接并填写表单。