另见好文:
【SVN使用log,list,cat,diff查看所有及特定文件版本信息】http://blog.csdn.net/zll01/article/details/4178041
【SVN代码回滚】http://www.cnblogs.com/jndream/archive/2012/03/20/2407955.html
svn使用手册见附件
创建版本库,以及将一个工程加到版本库中:
#0. 创建版本库 $ svnadmin create sam_repo #1. 创建工程的最初版本 $ pwd /home/work/user/sam/tmp/svn $ ls proj_ori/ #trunk:存放项目主线;branches存放源码分支;tags存放开发过程中做的标签 branches tags trunk $ cat proj_ori/trunk/file.txt #在proj_or/trunk中放置源码 hehe ???
命令详细批注:
svn diff -r m:n filename 注意有顺序的
#从版本35284 --> 版本35285 新增了一行“#多次请求” $ svn diff -r 35284:35285 core/case/crsas/rs_agent/random_rank_for_multstat.py Index: core/case/crsas/rs_agent/random_rank_for_multstat.py =================================================================== --- core/case/crsas/rs_agent/random_rank_for_multstat.py (revision 35284) +++ core/case/crsas/rs_agent/random_rank_for_multstat.py (revision 35285) @@ -55,6 +55,7 @@ st.res['body'] = req def test(self): + #多次请求 #第1次请求,mult_stat算法的推荐商品被随机化 super(RsRandomRank,self).test() assert_equal(5,len(self.ui_driver.res['body']['goods']['goods_list']))
svn log filename
$ svn log core/case/crsas/rs_agent/random_rank_for_multstat.py ------------------------------------------------------------------------ r35285 | hushiling01 | 2013-07-24 18:36:07 +0800 (Wed, 24 Jul 2013) | 1 line nothing more ------------------------------------------------------------------------ r35284 | hushiling01 | 2013-07-24 18:24:10 +0800 (Wed, 24 Jul 2013) | 1 line nothing ------------------------------------------------------------------------
svn info filename
$ svn info core/case/crsas/rs_agent/random_rank_for_multstat.py Path: core/case/crsas/rs_agent/random_rank_for_multstat.py Name: random_rank_for_multstat.py URL: https://svn.baidu.com/general-test/trunk/xts/ers/core/case/crsas/rs_agent/random_rank_for_multstat.py Repository Root: https://svn.baidu.com/general-test Repository UUID: b7cb459d-d3b9-4023-81ee-4f1888bb36e7 Revision: 35285 #这里是整个repository的版本号 Node Kind: file Schedule: normal Last Changed Author: hushiling01 Last Changed Rev: 35285 #这里是本文件的版本号 Last Changed Date: 2013-07-24 18:36:07 +0800 (Wed, 24 Jul 2013) Text Last Updated: 2013-07-24 18:35:48 +0800 (Wed, 24 Jul 2013) Checksum: 11a2aef58679fa094e9decf41aa2c4d6
svn resolved filename见另一篇独立博客[转载]
Linux上重现冲突场景:
---->---->---->---->time---->---->---->
用户A: co [r35285] -> 修改 -> ci [r35288]成功
用户B: co [r35285] ->修改 ----------------------> ci 失败(冲突信息如下)
B用户ci时的冲突信息:
$ svn ci -m 'nothing2' core/case/crsas/rs_agent/random_rank_for_multstat.py Sending core/case/crsas/rs_agent/random_rank_for_multstat.py svn: Commit failed (details follow): svn: File or directory 'random_rank_for_multstat.py' is out of date; try updating svn: resource out of date; try updating
此时B用户可以这样解决冲突:
1.放弃重来
(1) rm -r filename
(2) svn up filename
(3) 重新修改
(4) svn ci -m 'resolved' filename
2.diff重来
(1) svn up filename #这一步不要忘了
(2) svn diff filename:比较B修改后的版本和版本库上的最新版本,重新修改,svn resolved filename
#比较自己的版本和当前用户A提交后的版本 svn diff core/case/crsas/rs_agent/random_rank_for_multstat.py Index: core/case/crsas/rs_agent/random_rank_for_multstat.py =================================================================== --- core/case/crsas/rs_agent/random_rank_for_multstat.py (revision 35287) +++ core/case/crsas/rs_agent/random_rank_for_multstat.py (working copy) @@ -1,6 +1,6 @@ # -*- coding: GB18030 -*- from ers.core.control.plugin.crsas_caseimport import * - +#by sam class RsRandomRank(CrsasCase): def setup_env(self): env.crsas.set_param_0(max_num_to_ui=20,max_num_from_rs=2
从上面可以发现,B修改后的版本 只是比当前版本库中的最新版本(A修改后的版本)新增了一行“#by sam”
重新修改
(3) svn resolved filename
(4) svn ci -m 'resolved' filename
svn lock filename
简单的说,如果压根没有锁lock,那么每个人都拥有一个本地copy,每个人都能自由地对本地copy编辑edit并提交commit,这样可能会导致冲突conflict,最后不得不合并Merge。这就是传统的 “拷贝-修改-合并”模型。
如果使用锁,每个用户编辑前先get-lock, 然后编辑,提交。这个过程中,其他人打开的时候开到的是read-only的文件,无法保持,这样就保证了单一性。这就是“锁定-编辑-解锁”模型,对不容易合并的非二进制文件很有好处。
svn list dir:会列出某个目录下svn管理的文件(如果是非svn的文件则不显示)
[work@cq01-testing-sdcads-vir43.vm.baidu.com ers]$ ll total 24 drwxrwxr-x 6 work work 4096 Jul 22 08:35 core drwxrwxr-x 18 work work 4096 Jul 22 08:35 deploy drwxrwxr-x 3 work work 4096 Jul 22 08:10 hudsonbuild -rw-rw-r-- 1 work work 0 Jul 22 08:10 __init__.py -rw-rw-r-- 1 work work 133 Jul 22 08:35 __init__.pyc drwxrwxr-x 2 work work 4096 Jul 22 08:35 log drwxrwxr-x 12 work work 4096 Jul 22 08:35 tools [work@cq01-testing-sdcads-vir43.vm.baidu.com ers]$ svn list __init__.py core/ deploy/ hudsonbuild/ tools/
svn revert filename:如果我修改一个文件,最后发现不该修改,于是用这个命令回滚到当前svn的最新版本
相关推荐
SVN 命令使用手册.pdf pdf格式 汇集命令与一手
SVN命令使用手册.doc SVN命令使用手册.doc SVN命令使用手册.doc
Linux下SVN命令使用大全
linux ubuntu下svn命令使用指南.docx
一、 常用命令 1. Svnadmin create 创建库 2. Svn import 导入项目 3. Svn co: 将文件 checkout 到本地目录 4. Svn add: 往版本库中添加新的文件 5. Svn ci: 将改动的文件提交到版本库 6. Svn up: 更新到某个版本 .....
svn在linux下的使用(svn命令)
linux下svn命令大全
ubuntu SVN命令大全 ubuntu SVN命令大全 ubuntu SVN命令大全 ubuntu SVN命令大全
svn命令集
svn命令操作大全,word文档形式,包括svnadmin命令操作
linux下svn命令大全.txt
很好的学习linux的文档,是关于Linux操作svn的命令
讲述svn常用命令,svn命令 通常都有帮助,如果你不知道命令怎么用,可以很方便获取帮助信息。
打基线就是给被打基线的东西加一个标识,然后在这些东西已经有了变化形成了新的版本后,还能看到打基线的时候这些东西的原来的样子,从而可以对其进行追踪和版本隔离。在项目管理中,打基线主要是在项目进入另一个...
SVN命令、外部定义、建立分支脚本文件整理
svn命令在linux下的使用.doc linux下使用svn命令的总结
unity中使用svn命令
linux svn 操作 常用命令 add update delete等