svn 基本命令

1.检出

svn co SVN全路径  [本地目录全路径] --username 用户名 --password 密码

不指定本地目录全路径,会检出到当前目录下。

 

2.添加新文件

svn add test.php

svn commit test.php -m "注释"

svn add *.php

svn commit -m

 

3.提交 (提交需谨慎)

svn ci 文件名 -m 

 

4.

svm update + 文件名 

如果没有文件名或目录 默认将当前目录及子目录下的所有文件都更新到最新版本

字符 字符含义
A 已添加 
D 已删除
U 已更新
C 合并冲突
G 合并成功
E 已存在

 

 

 

 

 

 

 

5.删除文件

svn delete 文件名

svn ci 文件名 -m "注释"

 

6比较差异

svn diff test.php

svn diff -r 200:201 test.php

 

 

7 svn status (svn st)

  无修改
A 增加
C 冲突
D 删除
I  忽略
M 改变
R 替换
X 未纳入版本控制,被外部引用的目录所创建
? 为纳入版本控制
! 改项目已遗失
~ 版本控制下的项目与其它类型的项目重名
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.svn log

 

9.svn info

 

10 svn 回滚

<1 svn update 获取最新的版本号

<2 svn log 文件或者目录 找出要回滚的确切版本号

<3 svn merge -r 28:25 文件或者目录 由版本28回滚到25

<4 svn diff 文件或者目录 查看不同来确认回滚结果

<5 svn commit 文件或者目录 -m "注释"

 

11.解决冲突

在svn update 的过程中发生冲突

会提示

选择: (p) 推迟,(df) 显示全部差异,(e) 编辑,
(mc) 我的版本, (tc) 他人的版本,
(s) 显示全部选项:

选择 p

a.txt  a.txt.mine  a.txt.r6328  a.txt.r6336

其中a.txt中包含了工程师A和B的所有修改,以<<<<<<<、=======、>>>>>>>分隔。

一般查看a.txt就可以看到冲突的详情了

a.txt.mine是B(也就是当前的你)的修改,是未update前的a.txt

a.txt.r6382是工程师A提交前的版本,即未导致冲突的版本。

a.txt.6336是工程师A提交后的版本,即导致冲突的版本。

 

$ svn resolve –accept working a.txt (注:改命令会删除a.txt.mine a.txt.r6328 a.txt.r6336,如果手动删除它们,svn也会认为冲突被解决了)

$ svn ci -m ”

 

12.svn list path

查看path目录下的所有属于版本库的文件和目录 简写svn ls 

 

13.svn move a.php b.php  -m 'move test file'

将当前目录下得a.php改名为b.php

 

svn revert 回滚当前目录

svn revert test.cpp 回滚文件

该命令可以恢复上次up之后的状态,该命令不恢复非svn命令删除的目录

 

服务器管理员在SVN服务器上创建项目版本库newrepos

svnadmin create /usr/local/svn/newrepos

svn导入数据到版本库

svn import beacon https://svn.baidu.com/app/ecom/im-dp/trunk/comse-pf/fengsui -m'initial import'

 

 

新项目如何创建svn版本并进行code review

1.svn co https://svn.baidu.com/app/ecom/im-dp/trunk/comse-pf/fengsui 生成一个空的工作目录

2.将工作代码放到生成的svn工作目录中,然后执行 svn add ./*

3.python upload.py 进行代码检查(这一步是在add之后,ci之前) 

4.svn ci

 

posted @ 2014-09-26 17:14  小刘_php  阅读(163)  评论(0)    收藏  举报