`

svn命令使用

 
阅读更多

另见好文:

【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的最新版本

 

 

分享到:
评论

相关推荐

    Linux下SVN命令使用大全

    ### Linux下SVN命令使用大全 #### 一、概述 Subversion (SVN) 是一款开源版本控制系统,广泛应用于软件开发和其他需要版本控制管理的领域。在Linux环境下使用SVN,能够有效地帮助开发者管理和协作代码。本文档将...

    SVN 命令使用手册

    ### SVN命令使用手册知识点详解 #### 一、SVN简介 Subversion (SVN) 是一种广泛使用的开源版本控制系统,用于软件开发和其他需要版本控制的领域。它支持多个用户对同一组文件进行编辑,同时还能追踪每一次修改的...

    linux ubuntu下svn命令使用指南.docx

    Linux Ubuntu 下 SVN 命令使用指南 SVN(Subversion)是一种开放源码的版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。它提供了常见的比较、修补、标记、提交、回复和分支功能性,并增加...

    SVN命令使用手册.doc

    本手册主要介绍SVN的一些基础命令,帮助用户理解和掌握如何有效地使用SVN进行代码管理和协作。 1. **创建SVN仓库(Repository)** 使用`svnadmin create`命令可以创建一个新的SVN仓库。例如,在Windows环境下,...

    svn在linux下的使用(svn命令)

    svn 在 Linux 下的使用(svn 命令) svn 是一个版本控制系统,允许多人合作开发项目,追踪文件的变化历史记录,避免文件冲突和丢失。下面介绍 svn 在 Linux 下的使用和常用命令。 1. 将文件 checkout 到本地目录 ...

    svn命令大全.docx

    "svn命令大全" SVN(Subversion)是一种版本控制系统,主要用于管理软件开发过程中的代码修改和更新。下面是 Linux 下 SVN 命令大全介绍: 一、checkout 命令 checkout 命令用于将文件从服务器 checkout 到本地...

    SVN打基线常用命令使用介绍

    ### SVN打基线常用命令使用介绍 #### 一、打基线的概念 打基线是版本控制中的一个重要概念,指的是给某一个版本的代码或文档打上一个标签,以便于将来能够快速找到并使用该版本。这对于项目的追踪、版本隔离、版本...

    svn命令操作手册大全

    这些操作通常需要管理员权限,因此在日常开发工作中,开发者通常不会直接接触到 svnadmin 命令,而是使用 svn 客户端命令来与仓库交互。 **二、svnadmin 选项** 1. **svnadmin list** - **摘要**: `svnadmin ...

    ubuntu SVN命令大全

    - 当文件出现冲突时,通过手动解决后使用此命令来通知 SVN 该文件已解决冲突。 #### 十八、Cat (显示文件内容) **命令格式**: ``` svn cat [文件] [@版本号] ``` **示例**: ``` svn cat -r PREV filename > ...

    linux下svn命令大全.txt

    下面将详细解析从给定文件中提取的关键SVN命令及其功能,这将帮助你在Linux系统中更有效地管理和操作SVN仓库。 ### 1. 检出 (Checkout) `svn checkout path path` 命令用于从SVN仓库检出项目到本地目录。例如,`...

    svn命令再封装

    特别是当这些文件分布在不同的目录层级时,使用标准的SVN命令来进行文件状态检查和上传可能会变得非常繁琐。例如,当你只想查看或上传已经被修改过的文件时,原生命令可能需要配合使用多个辅助命令,如`grep`和`awk`...

    svn服务用svnsync命令双机热备

    本文将详细介绍如何使用`svnsync`命令实现SVN服务的双机热备,以提高系统的稳定性和可靠性。 #### 双机热备原理 双机热备是指通过配置两台服务器(主服务器与备服务器),使它们能够互相备份对方的数据和服务状态...

    svn常用命令介绍

    在使用SVN进行项目管理时,掌握一些常用的SVN命令是非常必要的。以下是一些核心的SVN命令及其详细解释: 1. **初始化仓库(svnadmin create)**: 在一个新的目录下创建一个SVN仓库,这将生成一个包含所有必需文件...

    SVN常用命令(使用频率最高的)

    以下是一些使用频率最高的SVN命令,确保你能快速上手并有效地利用SVN进行项目管理。 1. **初始化仓库(Create Repository)** 使用`svnadmin create`命令创建一个新的SVN仓库。例如: ``` svnadmin create /path...

    linux常用svn命令

    很好的学习linux的文档,是关于Linux操作svn的命令

    svn 回退/更新/取消至某个版本命令

    #### 二、SVN命令详解 ##### 1. 取消Add/Delete 当用户在SVN仓库中对文件或目录进行了添加(add)或删除(delete)操作但还未提交(commit)时,可以通过以下命令取消这些操作: - **取消文件**:`svn revert 文件名` -...

    SVN.rar_svn_svn pdf

    在"SVN.rar_svn_svn pdf"这个压缩包中,包含了一份名为"SVN命令使用手册.pdf"的文件,这是一份详细的SVN学习指南,旨在帮助初学者快速上手。以下将深入探讨SVN的一些核心知识点: 1. **SVN基本概念**: - **仓库...

Global site tag (gtag.js) - Google Analytics