SVN基本命令

一.常用命令
1、检出
svn  co/checkout  http://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名 --password 密码


注意:username 与 password前是两个短线,不是一个,认证过可不加。本地目录非必填,默认当前目录。
eg:svn co http://test/trunk


2. 查看信息
svn info [文件路径]


没有指定文件返回当前svn仓库的信息,比如路径,分支地址,svn服务器地址等等。指定了文件,会返回这个文件的详细信息。
eg:在我的测试目录下,执行svn info 会返回:


Path: .
Working Copy Root Path: D:\project\xxx
URL: https://xxx/trunk
Relative URL: ^/xxx/trunk
Repository Root: https://svn.text.com
Repository UUID: f1e22b3a-c8a0-4bf3-8542-66ea2b9421c2
Revision: 1154742
Node Kind: directory
Schedule: normal
Last Changed Author: test
Last Changed Rev: 1154630
Last Changed Date: 2016-10-17 13:17:37 +0800 (周一, 17 十月 2016)


3. 查看状态
svn st/status
返回当前目录下的文件的状态,例如?表示未添加,A表示已添加,M表示有修改


eg:在我的测试目录下,执行svn info 会返回:
?       xxx\test.iml
M       xxx\src\main\java\com\xxx\test.java


4、更新文件
svn update/up


5、添加新文件
svn add 文件路径

eg:
svn add xxx\src\main\java\com\xxx\test.java


6、提交
svn commit/ci -m "备注信息"

注意: 必须带上-m参数,参数可以为空,但是必须写上-m
eg:
svn commit -m "提交test"


7、删除文件
svn delete svn://路径(目录或文件的全路径) -m "备注信息"

eg:
svn delete xxx\src\main\java\com\xxx\test.java -m "删除test.java"


8、加锁/解锁
svn lock -m "备注信息" [--force] 文件路径
svn unlock 文件路径
eg:
svn lock -m "test lock" xxx\src\main\java\com\xxx\test.java
svn unlock xxx\src\main\java\com\xxx\test.java


9、比较差异
svn diff 文件路径
svn diff -r version_m:version_n 文件路径
eg:
svn diff test.java :当前与修改之前比较
svn diff -r 111:222 test.java  :对版本号111 和 版本号222 比较差异

10、查看文件变更日志
svn log 文件路径
eg:
svn log test.java :显示这个文件的所有修改记录,以及对应的版本号

11、查看版本库下的文件和目录列表
svn list/ls svn://路径(目录或文件的全路径)
eg:
svn ls svn://xxx/test : 显示svn://xxx/test目录下的所有属于版本库的文件和目录


12、创建新目录
svn mkdir -m "新增目录备注文本" http://目录全路径
eg:
svn mkdir -m "dir test" svn://localhost/test/newdir
注意:添加完子目录后,必须要回到根目录更新一下,否则会提示"提交失败”

13、丢弃在本地的修改
svn revert [--recursive] 文件路径
注意: 这个命令会解除冲突的状况,不会连接svn服务器,不会恢复被删除的目录。
eg:
svn revert foo.c :丢弃对一个文件的修改
svn revert --recursive :恢复一整个目录的文件,. 为当前目录


14、标记冲突已经解决
svn resolved [本地目录全路径]
eg:
如果你在更新时发生了冲突,你的工作拷贝会产生三个新的文件:
$ ls
foo.c
foo.c.mine
foo.c.r30
foo.c.r31
解决了foo.c的冲突,运行svn resolved,会删除这三个冲突标记文件,解决冲突。


15、不checkout而查看输出特定文件或URL的内容
svn cat http://文件全路径
eg:
svn cat http://xxx/test.txt

16、导出(导出一个干净的不带.svn文件夹的目录树)
svn export
注意;与checkout不同的是没有.svn文件夹。导出的文件脱离SVN版本控制,修改后无进行Update和Commit操作。

16、导出(导出一个干净的不带.svn文件夹的目录树)
svn export
注意;与checkout不同的是没有.svn文件夹。导出的文件脱离SVN版本控制,修改后无进行Update和Commit操作。

17、导入(本地目录导入到版本库)
svn import -m "import" test http://svn.red-bean.com/repos/branches/test
注意;与export相反,将本地目录导入到版本库。与add不同的是直接更新到远程版本库。无需commit.
原先的目录树并没有纳入版本控制,为了开始工作,你还是要运行svn checkout得到一个干净的目录树工作拷贝。


二.分支创建

1、新建一个分支


svn copy/cp branchA branchB  -m "new branch"

从branchA拷贝出一个新分支branchB,正常情况下,branchA都是trunk。生成tag,也是这个命令,只需要把路径修改就可以了。


2、切换分支
svn switch/sw http://目录全路径 [本地目录全路径]
eg:
svn switch http://xxx/test/123
注意:本地目录全路径可以不填,默认当前目录。


三.分支合并

1.在分支执行,得到分支从trunk checkout出来的最早的版本号。如下面是1089035

$ svn log -v --stop-on-copy

------------------------------------------------------------------------
r1089035 | user | 2002-11-03 15:27:56 -0600 (Thu, 07 Nov 2002) | 2 lines

 

2.可以使用--dry-run 参数模拟合并,预览是否有冲突。
svn merge --dry-run -r 1089035:HEAD https://branch/xxx

3.合并,HEAD是最新的版本号。下面的命令代表把分支的所有版本的改变合并到trunk.
svn merge -r 1089035:HEAD https://branch/xxx


四.冲突解决


1.解决文件冲突


(1)、svn update后,1.txt文件出现冲突,选择base版本,即1.txt.rOld作为最后提交的版本
$ svn resolve –accept base


(2).手工修改1.txt文件,然后将当前拷贝即1.txt作为最后提交的版本
$ svn resolve –accept working 1.txt


(3).使用1.txt.rNew作为最后提交的版本
$ svn resolve –accept theirs-full 1.txt


(4).使用1.txt.mine作为最后提交的版本
$ svn resolve –accept mine-full 1.txt


2.解决树冲突


(1).什么是SVN树冲突?
  SVN树冲突不是常说的冲突。常说的冲突,是指不同的人同时改了某个文件的同一处内容,于是在合并时产生冲突。而树冲突是指,
对文件或目录本身的名称、位置进行了改变,或进行了文件或目录本身的添加、删除操作,而这些操作在合并(包括更新操作)时带来了冲突。
可参考SVN自带的帮助文档,第2章"Basic Usage”的"Dealing with Structural Conflicts”一节。

(2).如何避免树冲突?
      分支一定要从所在SVN项目的主干上拉出来,不要从其他位置特别是其他项目拉出来。即便本SVN项目主干上还"啥都没有”,也一定要从这里拉分支。
      请不要在删除一个文件或目录后,又再次添加。特别是像ver、mapping之类的文件和目录。这类操作造成的树冲突特别具有迷惑性。
     尽量不要更改文件和目录的名字,除非你确定小伙伴们最近不会碰它(修改名字或内容)。
     尽量不要在不同的分支上同时增加相同名称的文件或目录。

(2).树冲突快速解决方法。
   确定在你解决树冲突期间,主线不会有新的变化。
   基于主线,创建新的分支,命名为(比如)branch1_new。并把它checkout到本地。
   将出问题的分支上的内容export到新分支上。具体命令为:
       svn export --force <url of old branch> <local working copy of new branch>
    如果有需要删除的文件(主干上有,分支上确实想删除的),用svn rm命令删除。
---------------------
作者:bestStyle
来源:CSDN
原文:https://blog.csdn.net/qfycc92/article/details/53170809
版权声明:本文为博主原创文章,转载请附上博文链接!

SVN客户端用户使用手册 20061115 该文档将逐步教您如何在软件开发过程中使用svn客户端 环境模拟 现有项目名称:test 服务端版本库:test URL:http://10.155.11.10:81/svn 开发人员:devA,devB 版本库目录结构: test Doc(word文档) Soc(源代码) word_1 word_2 soc_1 sod_2 一.基本操作 第一步:安装客户端 到共享文件夹下,下载TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi安装程序,双击直接安装即可。安装成功后,右键单击鼠标会多出两个选项,分别是SVN checkout和Tortoise SVN。 第二步:建立工作区 项目开始之前,在本地PC的硬盘上,创建一个文件夹,文件夹命名随意(例如workspace ),该文件夹即作为软件开发者在项目开发过程中的工作区。 第三步:下载版本库 假如现在开发一个项目,配置管理员会在服务端建立一个该项目的版本库test 在workspace文件夹上,右键单击鼠标。选择SVN checkout,会出现如下窗口 图 1 在URL of repository中输入版本库地址,http://10.155.11.10:81/svn/test ,在Checkout dir中系统会自动添加第二步所创建的工作区目录。 在Revision中,选中HEAD revision,这样将会下载到版本库的最新版本。如果想下载库中的旧版本文件,可选中Revision,然后填入版本号即可。 如果不想下载整个版本库,而是只想下载自己负责的那部分模块,可以在URL后添加模块名,例如http://10.155.11.10:81/svn/test/Doc 。 单击OK,输入用户名和密码 第四步:修改版本库 对版本库的修改包括修改文件内容,添加删除文件,添加删除目录。 经过第三步的操作,本地的工作区文件夹,即workspace上会有绿色对勾出现,工作区下的文件也会带有绿色对勾,如图2 图2 如果对库中某一个文件进行了修改,系统会自动为这个文件和这个文件所在的各级父文件夹加上红色叹号,代表该文件或目录已经在本地被修改,如图3 图3 当所有对版本库的修改操作完毕后,右键单击工作区文件夹,选择commit提交新版本,输入密码后系统将把修改后的版本库上传到服务端,即完成一次对版本库的更新。 注意: 新版本提交之后,其他拥有写权限的用户也许会重复以上几步的操作,完成对版本库的再一次更新。所以,每次在工作区文件夹下修改本地版本库之前,必须首先对本地版本库执行一次更新(右键单击工作区,选择SVN Updata),将最新的版本下载到本地,然后再进行修改操作。 二.其他操作 在日常的软件开发过程中,除了以上介绍的下载,提交,更新操作外,还有另外几种常用操作。 (1)比较文件的不同之处 当对soc_1做了修改之后,soc_1文件会出现红色叹号,表示已经修改,如果想查看修改后的soc_1文件与修改前有何不同,可以右键单击此文件,选择diff,系统探出一个窗口,如图3,窗口分为两个部分,左边为更改之前的版本,右边为更改之后的版本。并在不同之处作出标记和说明。如图4 图4 如果是word文档的话,选择diff之后,系统会打开一个word文档,并在其中标出修改后的版本与修改前有何不同。如图4.1 图4.1 (2)查看日志 如果想查看一个文件的日志,例如soc_1,右键单击这个文件,选择show log,系统会踏出一个窗口,并在窗口中显示soc_1各个版本的log。如图4 图5 (3)查看版本树 如果想查看soc_1文件的版本树,右键单击该文件,选择Revision graph,系统将会打开一个窗口,并在窗口中显示该文件的版本树。如图6。 图6 之所以只显示了4.5.6.7四个版本,是因为选择了只显示发生过变化的版本。即1.4.5.6.7每一个版本都有不同的地方,都是经过用户修改后提交的。而2.3两个版本是与版本1相同的。 (4)下载某个文件的旧版本 如果想要得到某个文件的旧版本,只需在该文件上单击右键,选择Updata to revision…即可。系统会提示输入版本号。例如要下载soc_1的第五个版本,只需填入5即可。如图7。查看完版本5的文件后,如果想在此回到最新版本,只需要对soc_1运行Updata即可。 图7 (5)重名名和删除文件 如果要删除一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值