很老的文章了~~总结一下我们的代码发布流程,本地svn commit 到svn 服务器,线上linux 安装一个svn, svn update 代码到线上服务器。
···今天碰到一个问题,其实这个问题好久之前就没碰到了,只是之前可以通过别的方式化解,然后今天没法通过别的方式解决了,只能通过正确的方式解决。
问题描述:在线上修改了代码,怎么更新到本地。
直接通过小乌龟update,肯定不行。因为小乌龟是直接从svn服务器上更新内容,然而我是线上的代码修改了,而不是svn服务器上的文件修改了。
之前我们这个小项目提交代码到线上是这样的,本地修改后,用小乌龟提交,然后连接到服务器上,切换到网站根目录下,svn up,这样线上就能正常访问了。正是这个过程导致了我一个误区,我以为svn的工作流程是这样。
但其实他应该是这样
其实线上网站根目录下文件夹也是svn客户端服务的内容,他只是svn服务器大脑下的一个分支
之前的错误概念还有就是把线上服务器的内容等同于svn大脑的内容。举个例子,在实际的大项目中,代码整理后,要经过测试环境等等多重步骤才能发布,放到正常的生产环境中,如果我们直接把大脑合并的内容放到生产环境中,这样是太不合理了,这样感觉会导致线上的代码太不稳定了。
所以,正如第二个图中看到的一样,网站根目录也是从线上代码往下拉的,所以我们对线上代码的提交,就应该和我们平时提交代码一样,只是我们平时用小乌龟习惯了,可能已经忘记命令了,还有svn up是svn update的缩写,这个up并不是提交的意思哦(···误导我一年了)。
所以,我们在线上svn commit(svn ci)缩写,必备参数 -m(我原先以为svn不需要,肯定是小乌龟做了处理)。这样就能把代码更新到svn服务器上,然后别的同事svn up就可以了。
svn提交失败,经常需要clean up,可是呢,点击clean up的时候又会显示clean up失败,请clean up,无限死循环。可以进入当前目录的.svn目录下,用Navicat 打开那个wc.db文件(用Navicat打开,如何打开请百度 ),然后清空
work_queue和wc_lock就好了