svn提交和部署的原理

#svn提交的原理

前提

svn的代码是保存在远程仓库的,机器上的代码是远程仓库的拷贝,二者没有什么关系。

1.如果是分支上线

则在部署的时候相当于把分支部署在了机器上,然后点击上线确认完成 的时候是把分支部署到了机器上了,然后这个时候主干的代码还没有你自己的提交,这个时候就需要进行反向合并了,反向合并就是已主干为基准,合同分支,把你在分支上的修改弄到主干上,这样确保别人在主干上拉代码的时候可以有你的修改,其实部署的机器上就是你的分支,但是这是分支和主干已经完全一样了,根本不用去区分了。

2.如果是主干上线的话

你在主干上进行了更改,但是并没有提交,你去部署的时候还是部署的原来的,所以就不会有更改,这时你去提交到主干的时候,svn上虽然有了你的代码,但是机器上是没有你的代码的,这个时候应该重新部署一遍机器才可以。正确的做法是应该在主干上修改 ,然后直接在主干上提交,然后提交上线单去部署,这个时候机器上才会有你刚才更改过的新主干的代码。部署的时候还没有提交,机器上当然没有你刚才,更改的代码了,你部署之后才提交的,只能在svn上看到,但是机器上是看不到的。

3.常用的svn命令

svn cp 新建分支
svn ci 提交
svn merge 合并
svn export --force 导出diff 
svn resolved 解决了冲突
svn revert 回退修改