如何在实时apache服务器上使用svn?

dan*_*dan 8 svn apache

我是SVN的新手,还有我坚持的东西.我在本地开发网站的时间最长(MAMP设置),然后在准备就绪时将整个网站直播.我直接在现场网站上做的任何小的额外更改,我经常会将实时服务器上的所有文件重新下载到我的localhost(因为我永远不会记住我已经更改过的所有文件).显然,这不是最好的做事方式.我很好奇如何在实时网络服务器上设置SVN,所以我在本地做的每一个更改都会在我告诉它时被推到网站上.我在哪里创建svn回购?/domain.com/www/svn?我可以创建www目录作为实际的回购,如果这样做是不好的做法?

Dav*_* W. 7

不要在Web服务器目录中创建存储库!这是你问题的第一部分.

您的存储库可以存在于任何地方,只是不要将它放在Web服务器的目录中.

当您设置Apache httpd时(如果您正在使用它),请将其设置为忽略.svn文件夹,如下所示:

<DirectoryMatch \.svn>
   Order allow,deny
   Deny from all
</DirectoryMatch>
Run Code Online (Sandbox Code Playgroud)

现在,除了您的网络服务器之外的其他地方,创建一个Subversion存储库.从该存储库中的某个工作目录中检出,该目录不在您的Web服务器目录中.您现在可以导入存储库中的所有文件,并将它们提交到Subversion存储库.

完成后,您可以转到您希望显示这些文件的网络服务器目录,然后进行结帐.

你应该有三件事:

  1. Subversion存储库,不在您的网络服务器目录中.
  2. 一个工作目录,其中包含您网站中不在您的网络服务器目录中的所有文件.
  3. Web服务器目录中的工作目录.

计划如下:您在工作目录中进行的更改不在Web服务器的目录中.您可以在此处进行测试,并在此处提交更改.您也可以在这里进行所有测试.

一旦您对所有内容感到满意,您就可以svn update在Web服务器目录中的Subversion工作目录中执行操作.因此,您在Web服务器之外进行工作,测试,然后svn update在webserver目录中执行操作.

如果您想获得真正的想象力,可以创建一个Web分支,它代表您的Web服务器目录中的代码.然后,您可以根据需要检查您的代码.当您准备好在您的网站中实现它时,您可以将其合并到Web分支.当您更新Web服务器目录中的工作目录时,它只会提取Web分支上的代码.

实际上,您可以使用某种cronjob自动执行该过程.您将网站关闭,更新Web服务器目录中的subversion工作目录,然后重新启动您的网站.这可以确保Web用户正在查看的文件不会从它们下面更改.