`
飞扬云
  • 浏览: 151525 次
  • 来自: 深圳
社区版块
存档分类
最新评论

常用SVN命令总结

    博客分类:
  • SVN
阅读更多
1) 将修改后的文件提交到版本库
命令:
svn commit 文件名 -m "注释内容"
简写:svn ci 文件名 -m "注释内容"

作用:
将修改后的文件提交到版本库中,要注意和svn add 功能的区别,add并不提交到服务器,而是“预定提交到版本库中”。

例子:
假如修改了文件:android2.3/packages/apps/DeskClock/res/layout-land/desk_clock.xml,这时需要将此文件更新到版本库中去,如果版本库中也有这个文件,才可以将此文件更新进去。有多种方式可以更新,这里仅给出2种:

一:在当前目录android2.3/packages/apps/DeskClock/res/layout-land/下使用:
svn ci -m packages/apps/DeskClock/res/layout-land/desk_clock.xml  "修改了desk_clock.xml文件中的时钟第20行"

二:先cd到packages/apps/DeskClock/res/layout-land/目录下,然后使用:svn ci -m "修改了desk_clock.xml文件中的时钟第20行" 

总结:一般来说,在一个目录下有好几个文件已经修改,这时就可以直接进入到这个目录,然后用svn ci -m "注释" 就能够把这个目录下所有修改的文件提交到版本库中。当然,也可以不使用注释,直接使用svn ci即可,添加注释可以更加清楚修改了什么。


2) 将新添加的文件“预定添加到版本库”
命令:svn add 文件名/目录

作用:
将新的文件预定添加到版本库中(实际上并没有真正地添加到版本库中),前提是,版本库中没有这个文件,这个文件必须是新的。svn add之后,还必须使用svn ci 才能真正的提交到版本库中去。

例1:
假如有一个新文件:android2.3/packages/apps/DeskClock/res/layout-land/desk.xml,这时需要将此文件添加到版本库中去,有多种方式可以添加,这里仅给出2种:
一:在当前目录android2.3/packages/apps/DeskClock/res/下使用:
svn add android2.3/packages/apps/DeskClock/res/layout-land/desk.xml
二:cd到packages/apps/DeskClock/res/layout-land/目录下,然后:
svn add desk.xml即可
注意:add方法并没有把文件真正上传到服务器,还必须使用svn ci提交一下才能更新到服务器中。

例2:
假如有一个目录:rep1/rep2/rep3/a.xml,这个目录和子目录都是新创建的,现在要想把这个目录和子目录以及子目录中的所有文件都添加到版本库中去,怎么办?
方法:cd到rep1目录的父目录中,然后svn add rep1,这个命令会递归地把rep1以及子目录和子目录中的所有文件都“预定提交到版本库”中,然后再svn ci rep1 -m "注释内容”,这样就可以递归地把rep1以及子目录和所有文件真正地提交到服务器中。

3) 将版本库同步到当前项目中,或者说将当前版本更新到版本库中某个版本
命令:svn up -r x test
表示将版本库中的某个文件test或者源代码同步到版本x

例子:
假如版本库中有一个版本27,我想把当前项目同步到版本27,则可以使用:
svn up -r 27

注意:
a. 使用svn up表示从服务器上同步文件,默认情况下同步到最新版本;
b. 要区分up和ci的区别,up是把当前项目更新到版本库中的某个版本,而ci是把当前文件或者某个目录更新到版本库中,如果有新文件,则必须先使用add再ci;
c. svn up只会把更新服务器上新的文件,而不改变本地已经修改的尚未提交到服务器上的文件。

----------------------------------------------------------------------------------------------------------------------------------
2012.4-13 更新svn ci 和 svn add
----------------------------------------------------------------------------------------------------------------------------------
 如果要提交这个dir1目录以及该目录下包含的所有添加的文件,那么使用: svn add dir1
然后使用svn ci -m "注释内容"
即可将新增加的目录和该目录中的所有文件都提交到版本库中了。

注意:这种方式会导致一个问题:假如编译内核后,这个目录dir1下面会生成一些.o文件和其他一些目标文件,而这些目标文件是不能提交到服务器的,这种情况下有两种解决方法:
一:直接把这些生成的.o文件和不需要的文件删除掉,然后再svn add dir1。这种方法的缺点就是需要重新编译。
二:不删除生成的.o文件和其他文件,先使用svn add --depth=empty dir1 将这个目录添加,而并不添加目录下面的其他文件,然后再svn ci dir1提交这个空目录,最后再以这种方式:svn add ./dir1/fie_a 添加该目录下的其他指定的文件,然后再svn ci ./dir1/fie_a 就可以了,这避免了勿提交不需要的文件。这种方法的缺点就是对于提交较多文件时不方便。

——————————————————————————————————————————————————————
2012.5.10 更新
——————————————————————————————————————————————————————
查看修改的所有的log记录:svn log
查看某个具体版本号的所有修改的记录: svn log -v  -r n
注:n是某个版本号
例子:
假如要查看320这个版本号的修改记录,就用:svn log -v -r 320


————————————————————————————————————————————————————————
2012.6.6 更新
————————————————————————————————————————————————————————
要比较两个版本有什么差异,或者说想知道某个版本和之前的版本相比到底修改了哪些内容,用diff命令即可:

svn diff -r m:n path

例如:svn diff -r 200:201  x.c (对x.c这个文件的版本200和版本201比较差异)

然后终端会出现修改的记录,减号表示旧版本中的,加号表示新版本中要添加的内容,@@符号后面第一个是修改后的行数。


————————————————————————————————————————————————————————
2012.8.28 更新
————————————————————————————————————————————————————————
svn up (svn update) 状态缩写含义:  

A:add,新增 
C:conflict,冲突 
D:delete,删除 
M:modify,本地已经修改 
G:modify and merGed,本地文件修改并且和服务器的进行合并 
U:update,从服务器更新 
R:replace,从服务器替换 
I:ignored,忽略
3
1
分享到:
评论

相关推荐

    svn命令总结

    本文讲述了Linux命令行下常用svn命令的使用方法,希望对您有所帮助。

    svn服务器常用命令.doc

    关于svn服务器命令的使用, 哥这里做了个总结, 孩童们, 想看看看吗? 吼吼.................

    linux总结,(常用命令,配置,mysql,php,apache,svn.....)

    常用命令,用户管理,shell,配置文件目录,rpm 安装卸载,make 安装卸载bin安装卸载,磁盘管理,setup配置,启动桌面,显示帮助,时间,文件/目录操作, 防火墙,vi/vim,vimdiff,系统目录,gcc安装,mysql,apache...

    Linux学习笔记【博文整理系列】

    学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 ...文档列表: Linux笔记——vim常用操作及扩展补充[手册] ...Linux笔记——SVN命令总结 rpm&yum包管理命令总结 The end wklken

    Android之常用命令和工具.pdf

    1、里面有常见的如何快速获取app包名和拉取apk和直观的打日志的命令总结 2、快速获取启动奔溃日志的总结 3、一些日志工具和常见命令的分享 4、常见的逆向分析工具分享 5、常见的移动端抓包工具分享 6、移动端常用的...

    Git Bash安装,常用命令,使用示例说明,问题总结

    这是本人自己在项目中使用过后的总结,及遇到的问题处理方法,以及git和svn的对比说明,希望给大家可以带来帮助;(备注:下载后对里面不明白的地方可以留言,我会进行解答)

    Linux新手系列文档笔记

    此专题为linux新手生存笔记,一共13个章节,包括linux目录、vim训练稿、linux常用命令、linux+shell脚本基础、svn命令总结,对喜欢Linux并无太多基础的童鞋很有帮助。

    对比Git与SVN的很易懂

    如何通过Git-SVN开始使用Git,并总结平时工作高频率使用到的Git常用命令。本文从Git与SVN的对比入手,介绍如何通过Git-SVN开始使用Git,并总结平时工作高频率使用到的Git常用命令。Git和SVN孰优孰好,每个人有不同的...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    svnsync子命令 svnserve svnserve选项 svnversion mod_dav_svn Subversion属性 版本控制的属性 未版本控制的属性 版本库钩子 A. Subversion 快速入门指南 安装 Subversion 快速指南 B. CVS用户的Subversion指南 ...

    linux常用命令和关闭防火墙开启防火墙 自己总结全

    linux常用命令 Mkdir 创建 Rm -rf 删除 Chmod -R 777 权限 Mysql -uroot -r quit退出 find / -name svn 查找位置 关闭防火墙和selinux Redhat使用了SELinux来增强安全,关闭的办法为: 永久有效 修改 /etc/selinux...

    对比Git与SVN,这篇讲的很易懂

    Git-SVN开始使用Git,并总结平时工作高频率使用到的Git常用命令。 本文从Git与SVN的对比入手,介绍如何通过Git-SVN开始使用Git,并总结平时工作高频率使用到的 Git常用命令。 Git和SVN孰优孰好,每个人有不同的体验...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【*JVM】查看jvm虚拟机里面堆、线程的信息,你用过什么命令? 59 【JVM】垃圾回收算法有哪些? 59 引用计数法(Reference Counting Collector) 59 tracing算法(Tracing Collector) 61 compacting算法(Compacting ...

Global site tag (gtag.js) - Google Analytics