Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100694
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 578
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-18 11:01
文章分类

全部博文(31)

文章存档

2015年(13)

2014年(18)

分类: Java

2014-12-05 11:06:51

拷贝分支:
1. 进入需要创建新分支的svn目录下(svn checkout的简写)
     svn co svn://**********
2. 创建一个新的文件夹
     mkdir *****
3. copy分支
    svn copy svn://************ svn://************* -m "make *** branch"
4. 更新下新分支
    svn update

增加文件
svn add ***

提交改动到版本库
svn commit -m "update ***" [-N] [--no-unlock] PATH(如果选择了保持锁,就使用--no-unlock开关)
简写  svn ci 

svn修改已经提交的文件名 或 移动文件位置
svn move
    这个命令同svn copy加一个svn delete等同。
    
Subversion不支持在工作拷贝和URL之间拷贝,此外,你只可以一个版本库内移动文件

更新
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up

查看文件或则目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
   【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
   第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
   注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
  简写:svn st

删除文件
svn delete path -m "delete test fle"
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"
或者直接svn delete test.php 然后再svn ci -m 'delete test file‘,推荐使用这种
简写:svn (del, remove, rm)

比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
       svn diff -r m:n path(对版本m和版本n比较差异)
 例如:svn diff -r 200:201 test.php
 简写:svn di

将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

发布版本流程:
全量版本:
1、确认需要封版的基线版本的完整性和正确性
2、通过 cp 命令 拷贝版本 到tags分支下,按版本命名规范命名
    svn cp svn://.../../branches/...  svn://.../.../tags/... -m "......"
增量版本:
1、通过co拷贝一个工作区最终版本的工作区(比如tags或者truk分支),并通过linux 的 cd命令进入目录下
    svn co svn://.../.../tags/...
    cd .../.../...
2、在该目录下通过merge命令把brancher中的2个svn号 code1和code2的差异合并到tags版本中,code2不写默认为最新版本
    svn merge svn://.../.../brancher/...@code1 svn://.../.../brancher/...@code2 
3、解决冲突,然后commit
    svn commit -m ""

svn解决冲突的选项,如下所示: 

(e)  edit             - change merged file in an editor               #直接进入编辑 
(df) diff-full        - show all changes made to merged file          #显示更改至目标文件的所有变化 
(r)  resolved         - accept merged version of file 

(dc) display-conflict - show all conflicts (ignoring merged version)  #显示所有冲突 
(mc) mine-conflict    - accept my version for all conflicts (same)    #冲突以本地为准 
(tc) theirs-conflict  - accept their version for all conflicts (same) #冲突以服务器为准 

(mf) mine-full        - accept my version of entire file (even non-conflicts)#完全以本地为准 
(tf) theirs-full      - accept their version of entire file (same)    #完全以服务器为准 

(p)  postpone         - mark the conflict to be resolved later        #标记冲突,稍后解决 
(l)  launch           - launch external tool to resolve conflict 
(s)  show all         - show this list 


阅读(1174) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~