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

浙公网安备 33010602011771号