在生产服务器上使用subversion生成文件的最佳方式是什么?

目前我有颠覆设置,所以当我在Eclipse PDT进行更改,我可以提交更改,他们将被保存在/ home /pipe理员/ 项目文件 。 这个文件有subversion推荐的/ branches / tags和/ trunk目录。 我没有问题正确上传文件到版本库,但是我必须“mv”Linux中的文件到/ var / www为了让他们住在服务器上? 有没有一个自动过程来做到这一点,我失踪了? 我假设我们不想让/ var / www目录(这是在机器上)存储库,但我不知道。

Solutions Collecting From Web of "在生产服务器上使用subversion生成文件的最佳方式是什么?"

你可以做一个svn export到你的www目录。 这将给你一个“干净”的回购版本,没有.svn目录。

 cd /var/www svn export /home/administrator/MyProject/trunk MyProject 

编辑:从评论中添加一些好主意…

当您想要更新您的导出副本的一些选项:

  • 运行svn export --force /home/...../ MyProject这将停止它抱怨覆盖现有的文件。 这个方法意味着如果你从你的仓库中删除一个文件,它仍然会保留在你的www文件夹中。
  • 改变您的SVN命令每次导出到一个新的目录:
    svn export /home/..../ MyProject_20081105
    然后创建一个符号链接到该文件夹​​:
    ln -s MyProject_20081105 MyProject
    只要每次“释放”时删除并重新创建符号链接。 在这种情况下,导出目录根本不需要在www文件夹中。

您可以简单地在/ var / www文件夹中签出存储库副本,然后在需要时(或将其切换到新的分支/标签等)在其上运行svn update 。 因此,您有一个副本在您的本地机器上进行了更改和更新,另一个副本在您的Web服务器上签出。

使用SVN信息库也使您能够恢复到早期版本。

您也可以创建一个提交后挂钩,将提交所更改的所有文件移动到/ var / www目录。

下面是一个用python编写的例子,通过ftp将更改后的文件上传到远程主机:

http://svn.haxx.se/dev/archive-2007-08/0287.shtml

你可能想要记住你在任何时候都有什么文件生产 – 所以保留一个“release”标签(例如在/ project / tags / release)。 当你想释放,复制你的树干在那里。 然后svn导出该释放标签。

或者其他的东西。

我在这里见过很多人,其他论坛都在讨论使用Capistrano进行部署,但是我没有任何个人经验。