我一直在阅读文档等,并且让SVN正常工作,但我想把它放在现有目录上。我导入了该目录,所以我是否重命名/删除非SVN目录,然后将SVN签出到非SVN目录位置?我只是想了解如何让它开始发布到我们的网站URL。
如果是这样,有没有办法保持当前的非SVN并使其成为SVN而不是导入和覆盖?
谢谢,我正在尝试理解SVN,但是发现很多教程和网络上的内容都令人困惑。
答案 0 :(得分:3)
是的,你完全拥有它。将代码添加到存储库后,可以删除或重命名原始代码目录。然后将项目从存储库签出到与之前代码相同的位置,并继续在那里工作。
<强>更新强>
为了使您的网站从存储库更新,您实际上需要两个工作目录和存储库。
存储库:存储库存储代码和变更集,但不能直接作为文件系统访问。保持备份!。
工作目录1:您从存储库中检出的工作目录开发并测试代码。将更改提交回存储库。
工作目录2:重命名网络服务器上的代码目录。将代码的副本签出到您的Web服务器。从技术上讲,它现在是一个工作目录,因为它包含.svn
元数据目录,但您通常不会在此处进行更改。
从开发工作目录(1)更改代码并将其提交回存储库。如果您对它们正常工作并经过适当测试感到满意,请在Web服务器的代码副本(2)上执行svn update
(或者如果您在Web服务器上使用Tortoise SVN,请执行更新)。这将使服务器代码与当前开发版本同步。
Subversion不会自动将更新推送到您的Web服务器。您需要在需要时通过更新将其拉入。可以使用所谓的“提交后挂钩”来使Subversion在提交时执行脚本,并且该脚本可以更新代码或将代码导出到生产Web服务器。但是,您需要编写脚本,这是Subversion的一种高级用法。我建议尝试使用Web服务器上的工作副本描述的方法,以便习惯于尝试更复杂的工作流程。
附录如果你真的想这样做(我真的不推荐它,除非你真的测试得好)一个非常简单的方法是安排一个{{1}的cron作业在您的生产网站上每隔几小时(或几分钟)。
不要忘记,如果您碰巧直接在Web服务器上修改代码,则必须从那里将其提交回存储库,并对开发工作副本进行更新。