svn使用

1、使用svn很长时间,但是一直使用都没有去梳理过svn是什么,怎么样使用,只会简单的svn 添加文件,删除文件,co,ci,up

现在简单的整理一下

使用svn的模式有两种

1、Lock-Modify-Unlock

加锁-修改-解锁  别人在修改

这种方式很显然不适合团队协作

2、Copy-Modify-Merge

从库中拷贝一份,自己修改,然后合并,每次拷贝一份就相当于自己有一个独立的working copy

说下svn 的常用命令:

1、命令很多,常用的页就那么几个

2、 

svn add 把本地添加的文件纳入svn管理目录下

svn co 拷贝一个working ,就是把代码弄到本地

svn revert 撤销本地的修改

svn up    从库中更新与本地不一样的,当两个人在同一个分支上开发的时候,ci之前需要up一下

svn ci -m "svn log...." 把代码提交到库中

svn log svn日志

svn export 类似于svn co 但是svn export不带任何的版本信息

svn resolved path(aa/aa.php)  当出现冲突的时候,改完戳图之后执行此命令

3、当up或者ci的时候代码有可能会出现冲突

出现冲突会出现提示信息

sd show diff 展示diff信息

tc  their conflict

mc their conflict

postpone 稍后解决冲突

edit 编辑冲突文件

一般情况下选择postpone然后找相应人员一起解决冲突

比如说冲突文件为aa.js

在这个文件下会有aa.js.rxx,aa.js.rxxx.aa.js.mine

用编辑器打开aa.js 会看到

<<<<<<<.mine

  这中间都是你的代码

============

别人的代码,就是这些代码冲突了

>>>>>>>>>>>>.rxxx

<<<<<<< .mine
            var aa= $(this).tbattr('downnowurl');
            console.log(aa);
            $('.j_down_now').bind('click',function  () {
                var downNowUrl = $(this).tbattr('downnowurl');
=======
            $('.j_down_now').bind('click', function(){
                var downNowUrl = $.unescapeHTML($(this).tbattr('downnowurl'));//为何不通过js传递?
>>>>>>> .r398463

  解决冲突之后,在执行resolved命令然后ci就ok了

svn resolved path/xxx/aa.js

4、当然用3的方式是可以解决冲突,不过太麻烦和容易出错了

一般用SVN提交冲突的时候会给出几个选项,其中p代表推迟,tc代表冲突解决方式是已最新的为准,mc已我本地为准

一般会选择p,这时候本地回多几个问题件,right-version....,left.....,working,等源文件中带有<<<<<< =====这些冲突信息,解决方式是我们选择compare工具比对right和left,已right为准,合并完冲突之后,删除working 源文件和left文件,并且修改right文件的后缀名

原文地址:https://www.cnblogs.com/knightshibiao/p/3888605.html