我是新来的SVN和theres东西我坚持。最长时间我一直在本地开发网站(MAMP设置),然后在整个网站准备好后立即进行整个网站的生成。我在活网站上直接进行的任何小的其他更改,我经常会将活服务器上的所有文件重新下载到本地主机(因为我永远不会记住所有已更改的文件)。显然这不是做事的最佳方式。我很好奇我如何在一个实时网络服务器上设置SVN,所以我在本地制作的每一个变化都会在我告诉它时被推送到网站上。我在哪里创建svn回购? /domain.com/www/svn?我可以创建www目录作为实际的回购,如果是的话,这是不好的做法?如何在活的apache服务器上使用svn?
回答
请勿在Web服务器目录中创建存储库!这是你问题的第一部分。
您的存储库可以在任何地方居住,只是不要将它放在web服务器的目录中。
当你安装的Apache httpd的(如果这是你使用的是什么),将其设置为忽略.svn目录是这样的:
<DirectoryMatch \.svn>
Order allow,deny
Deny from all
</DirectoryMatch>
现在,别的地方,除了你的Web服务器,创建一个Subversion库。从其他地方的工作目录中的该存储库签出,该目录不在您的Web服务器目录中。您现在可以将所有将存放在您的存储库中的文件导入到您的Subversion存储库中。
一旦你这样做了,你可以去你的Web服务器的目录,你想这些文件出现,并做一个结帐。
你应该有三件事情:
- Subversion版本库那不是在你的web服务器的目录。
- 一个工作目录,其中包含您网站上的所有文件,这是不在您的网络服务器的目录中。
- 一个在你的web服务器目录中的工作目录。
计划是这样的:你在工作目录中进行的更改不在你的Web服务器的目录中。您可以在这里进行测试,并在此处进行修改。你也可以在这里做所有的测试。
一旦您对所有事情都感到满意,您就可以在Web服务器目录下的Subversion工作目录中执行svn update
。因此,您在网络服务器之外完成您的工作,测试,然后在网络服务器目录中执行svn update
。
如果你想变得很花哨,你可以创建一个Web分支,代表你的Web服务器目录中的代码。然后,你可以检查你的代码进出你想要的。当你准备好在你的网站上实现它时,你可以将它合并到Web分支。当你更新你的web服务器目录中的工作目录时,它只会提取web分支上的代码。
事实上,你可以用某种cronjob自动化这个过程。关闭网站,更新Web服务器目录中的Subversion工作目录,然后重新启动您的网站。这可以确保Web用户正在查看的文件不会从它们下面更改。
非常感谢您回答我的问题,但我仍然需要对svn做更多的研究,以确保我能理解它。我想出了一个快速图表,你能检查一下,看看我是否正确理解你? http://danramosd.com/svn_diagram.png – dan 2011-01-14 16:49:22
我会安装在你的svn结帐的结构(在本机上)相匹配,你需要存储(并不一定与服务器的结构)的文件,例如:
my-project
my-project/docs/README.txt (any documentation you want to write)
my-project/www/index.html (etc)
和等等。然后,
(1)如果你有访问服务器上运行的命令,我会登录并做如:
cd /domain.com
rm -rf www
svn co https://svn.myserver.com/my-project/www www
(2),否则,我会检查你的本地计算机上的文件并将它们传送到服务器。
选项(1)更好,但即使使用选项(2),您也比目前的设置有优势。如果您在服务器上更改文件,则可以将整个目录返回到您的本地文件夹到一个新目录,然后将文件“提交”到Subversion服务器。 Subversion(需要将.svn
目录复制到服务器/从服务器复制)将知道您更改了哪些文件。
- 1. 如何从Apache服务器上的Apache SVN存档旧版本
- 2. Apache SVN服务器要求?
- 3. Apache服务器和SVN 1.6.15
- 4. 使用Apache或Windows服务的SVN服务器
- 5. 在Mac OS X 10.6上激活SVN服务器sor ssh + svn://连接服务器
- 6. svn list命令错误200在Apache + SVN服务器设置上
- 7. 在apache tomcat服务器上使用CakePHP
- 8. 使用现有Apache服务器在服务器上安装uberSVN
- 9. 使用git svn在svn服务器上回滚一些更改?
- 10. 如何禁用匿名签出apache svn服务器
- 11. 如何在Apache Web服务器上使用geminabox
- 12. 在Snow Leopard服务器上配置Apache,Tomcat和SVN
- 13. 使用Tortoise SVN连接到远程Windows服务器上的SVN?
- 14. Apache服务器上的Node.js
- 15. 如何使用MonoDevelop和Visual SVN服务器运行SVN命令
- 16. 使用Apache服务器
- 17. 如何在apache-cloudstack管理服务器上启动apache tomcat
- 18. 如何在Apache Tomcat服务器和GlassFish服务器中列出所有活动用户名与活动会话
- 19. 如何首次使用smart svn将项目上传到svn服务器?
- 20. 如何在我的ec2 ami apache服务器上启用https
- 21. 如何使用Apache服务Django服务器和React客户端?
- 22. 如何在apache服务器上的rails项目上运行ruby?
- 23. 检出使用SVN在服务器上创建的存储库
- 24. 我可以在Xcode的Linux服务器上使用SVN吗?
- 25. 如何使公共Apache服务器
- 26. 在Apache服务器上的fcgi vs mod_fastcgi
- 27. 在Apache服务器上的多个域
- 28. Gitolite在SVN服务器上镜像
- 29. 在windows上安装svn服务器
- 30. 在Ubuntu上配置SVN服务器12.04
您的实时Web服务器是否连接到Subversion服务器? – jgifford25 2011-01-13 16:09:47