【问题标题】:How to set up SVN with files that are in an /htdocs directory structure如何使用 /htdocs 目录结构中的文件设置 SVN
【发布时间】:2010-10-08 18:04:20
【问题描述】:
在处理 php 文件时如何设置 Subversion 时,我遇到了一个小问题。我将所有文件存储在 c:\www[nameOfProject]\htdocs 并为每个项目设置虚拟主机。 (c:\www\project1\htdocs\index.php 映射到http://localhost/project1/index.php)。
你们如何处理使用 SVN 的问题?假设我有 c:\svnrepos\ 这是我为每个项目存储每个 repo 的地方。现在理想情况下,我想从 c:\svnrepos\project1 到 c:\www\project1 的 repo 签出对吗?但是文档说要对一个空目录执行此操作,但是如何在不先将其移动到其他地方的情况下预览我的代码呢?
感谢大家的帮助!
【问题讨论】:
标签:
php
svn
apache
version-control
【解决方案1】:
有效地做到这一点的一种方法是通过将主干检出到 c:\www\preview\project1 并使用适当的虚拟主机或那里的不同 url 对其进行测试来进行开发。
当您开始使用它时,您将检查各种版本的主干。当转移到您的“真实”主机/网址已经成熟时,那么您
- 创建一个分支或标签来反映这一点(如branchs/rel.1),并且
- 签出 (svn co) 分支到 c:\www\project1\htdocs
之后,您可以在分支/rel.1 下进行紧急错误修复,并将它们合并回主干下正在进行的工作。当另一个版本准备就绪时,您
- 创建另一个分支(例如,branches/rel.2),然后
- 切换(svn 切换)c:\www\project1\htdocs 到新分支
这样,您可以防止您的开发干扰实际服务,如果您遇到问题,还可以切换回早期版本。
对于更复杂但紧急的错误修复,您可以
- 将您的开发作为主干签入
- 将 c:\www\preview\project1 切换到当前发布分支
- 修复并测试 c:\www\preview\project1 中的错误,必要时提交
- 满意后,进行最后的签入,然后在 c:\www\project1\htdocs 上进行 svn 更新
- 将c:\www\preview\project1切换回trunk,继续开发
【解决方案2】:
空目录并不意味着 c:.
因此,您可以安全地在 c:\svnrepos\project1 拥有一个存储库,然后签出到 c:\www\project1 即可工作。
【解决方案3】:
你可以做你想做的事。如果您的 repo 位于 c:\svnrepos\project1,那么您可以检查一个新的工作副本到 c:\www\project1,它确实应该是空的。
如何预览我的代码...?
通过将代码签出到其他目录来预览代码。例如,通过设置适当的虚拟主机,将其签出到 c:\www\preview\project1。
【解决方案4】:
如果您已经有一个应用程序实例检出到C:\www\project1,并且您想预览自检出后所做的一些更改而不更改现有应用程序,那么是的,您需要创建一个新的空将文件签出到的目录(或者您可以将现有的C:\www\project1 移到别处,创建一个新的空C:\www\project1,然后签出)
但是,如果您不需要同时提供新的更改和应用程序的原始版本,您可以随时使用 SVN 使用您所做的更改更新位于 C:\www\project1 的工作副本。如果您不喜欢它们,只需将该工作副本恢复为早期版本即可。