SVN日常管理命令详解

1、检出

svn co svn://path/ [local_path] --username username --password passwdsvn co <=> svn checkout
svn co <=> svn checkout
2、导出( 导出一个干净的不带.svn文件夹的目录树)

svn export [ -r 版本号 ] svn://path/ [ local_path ] --username username --password passwd
svn export 本地检出的(带.svn文件夹的)目录全路径 local_path未指定版本号,则导出最新的
未指定版本号,则导出最新的
3、添加新文件/目录

svn add filename/pathname (必须提交才会真的生效,这里只是告诉SVN服务器要添加文件了)
svn mkdir path
svn mkdir -m "message" svn://path/dirsvn import http://localhost/svn/hehehehehhe -m=sdfsdf //可在任何目录下,将当前文件夹下的所以文件递归导入到 svn response 的hehehhhe 目录下。
svn import http://localhost/svn/hehehehehhe -m=sdfsdf //可在任何目录下,将当前文件夹下的所以文件递归导入到 svn response 的hehehhhe 目录下。
4、提交

svn ci -m "注释" [ -N ] [ --no-unlock ] filename
svn ci <=>svn commit--no-unlock 保持锁开关就用些选项
 --no-unlock 保持锁开关就用些选项
5、更新

svn update [ -r 版本号] [文件名]
6、删除文件

svn delete svn://path/ -m "注释" (必须提交才会真的生效,这里只是告诉SVN服务器要添加文件了)
推荐操作:

svn delete filenamesvn ci -m "message"
svn ci -m "message"
7、加锁和解锁

svn lock -m "message" [ --force ] filenamesvn unlock filename
svn unlock filename
8、比较差异

svn diff filename #与基础版本(最后检出或的版本)比较
svn diff -r head #与版本库中最新版本对比svn diff -r 修改版本号m:修正版本号n filename
svn diff -r 修改版本号m:修正版本号n filename
9、查看文件或目录状态

svn st pathsvn st <=> svn status
svn st <=> svn status
目录下的文件和子目录状态,状态正常不显示; ?:不在SVN控制中; M:内容被修改; C:发生冲突; A:预定加入到版本库; K:被锁定 svn st -v path 显示文件和子目录状态(含子目录的文件) 第一列保持相同,第二列显示版本号,第三列和第四列显示最后一次修改的版本号和修改人

10、查看最新版本号

svnlook youngest /svn/www5
5
11、显示一个版本仓库中文件和目录的树形结构图

svnlook tree /svn/www/ --show-ids
/ <0.0.r1/626>
a <0-1.0.r1/51>
b <3-1.0.r1/207>c <5-1.0.r1/365>
c <5-1.0.r1/365>
10、查看日志

svn log filename
11、查看文件详细信息

svn info filename
12、查看版本库下的文件和目录列表

svn list svn://path/
13、恢复本地修改

svn revert [--recursive] filename
14、把工作拷贝别的URL

svn switch svn://newpath localpath
15、不checkout而查看输出特定文件或URL的内容

svn cat svn://path/
16、新建一个分支copy

svn copy branchA branchB -m "message" //from A to B
17、合并内容到分支merge

svn merge branchA branchB //把对A的修改合并到B
18、解决冲突

svn resolved [localpath]
当有冲突时,会生成.mine,.r版本号的文件

19.显示被修改的文件

svnlook diff path
20、svn备份

svnadmin dump path > /newpath #完全备份版本库,并保存为newpath
svnadmin dump path -r n --incremental > /newpath #以增量把版本库版本n的信息并转存到newpathsvnadmin dump path -r 10:20 --incremental > /root/www_bak_10-20 #对于一些较大的版本库可以分解备份
svnadmin dump path -r 10:20 --incremental > /root/www_bak_10-20 #对于一些较大的版本库可以分解备份
参数介绍: -r [--revision] ARG : 指定版本 ARG (或 X:Y 范围) --incremental : 以增量方式进行转存 --deltas : 在转存输出中使用差异 -q [--quiet] : 在标准错误输出不显示进度 (仅错误) svnadmin hotcopy /svn/www/ /root/www_hotcopy #热拷贝www这个版本库,可以直接拿来用,但要确保权限

21、SVN还原

svnadmin load /svn/www/ < /root/www_full_bak #还原完全备份 svnadmin dump /svn/www/ -r 5 --incremental > /root/www_bak_1 #再还原增量备份
svnadmin dump /svn/www/ -r 10:20 --incremental > /root/www_bak_1 #再还原增量备份svnadmin dump /svn/www/ -r 21:40 --incremental > /root/www_bak_1 #再还原增量备份
svnadmin dump /svn/www/ -r 21:40 --incremental > /root/www_bak_1 #再还原增量备份
22、SVN合并

svnadmin create /svn/crazy #创建版本库crazy
svnadmin dump /svn/www > /root/www_full_bak 备份/svn/www 和 /svn/redhat 版本库
svnadmin dump /svn/redhat/ > /root/redhat_full_bak
svnadmin load /svn/crazy/ --parent-dir test < /root/www_full_bak 合并版本库svnadmin load /svn/crazy/ --parent-dir test1 < /root/redhat_full_bak 23、SVN帮助 svn help svn help ci 以上所有协议可以是svn,http,https;不指定password,会提示输密码
svnadmin load /svn/crazy/ --parent-dir test1 < /root/redhat_full_bak 23、SVN帮助 svn help svn help ci 以上所有协议可以是svn,http,https;不指定password,会提示输密码
 

-------------------------------------------命令帮助---------------------------------

svn add

add: 把文件和目录放入版本控制中, 通过调度加到档案库。它们会在下一次提交时加入。

用法:add 路径...

有效选项:

--targets arg : 传递文件ARG 内容为附件参数

-N [--non-recursive] : 只在单个目录操作

-q [--quiet] : 打印尽可能少

--config-dir arg : 从目录 ARG 读取用户配置文件

--force : 强制操作运行

--auto-props : 使自动属性有效

--no-auto-props : 使自动属性无效

eg.(下面的命令必须在工作拷贝目录下运行 ) sh> svn add test.c //加一个文件 sh> svn add test //加一个目录,目录下有任意结构的文件夹 sh> svn import http://localhost/svn/hehehehehhe -m=sdfsdf //可在任何目录下,将当前文件夹下的所以文件递归导入到 svn response 的hehehhhe 目录下。

sh>svn export export: 产生一个无版本控制的目录树拷贝。 用法:1 、export [-r REV] URL[@PEGREV] [PATH] 2、export [-r REV] PATH1[@PEGREV] [PATH2]

1、从 URL 指定的档案库,导出一个干净的目录树到 PATH。如果有指定REV 的话,内容即为该修订版的,否则就是 HEAD 修订版。如果 PATH被省略的话,地址 (URL)的最后部份会被用来当成本地的目录名称。

2、在工作拷贝中,从指定的 PATH1 导出一个干净的目录树到 PATH2。如果有指定 REV 的话,会从指定的修订版导出,否则从 WORKING 导出。如果PATH2 被省略的话, PATH1 的最后部份会被用来当成本地的目录名称。如果没有指定 REV 的话,所有的本地修改都还会保持著,但是未纳入版本控制的文件不会被复制。 如果指定了 PEGREV ,将从指定的修订版本开始查找。 有效选项: -r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 ) 修订版参数可以是: 数字 修订版号 "{" 日期 "}" 在指定时间以后的修订版 date "HEAD" 最近的档案库 "BASE" 基线,基于修订版的工作条目 "COMMITTED" 最后提交或基线之前 "PREV" 修订版提交之前 -q [--quiet] : 打印尽可能少 -N [--non-recursive] : 只在单个目录操作 --force : 强制操作运行 --username arg : 指定用户 ARG --password arg : 指定密码 ARG --no-auth-cache : 不要缓冲用户验证 --non-interactive : 不要交互提示 --config-dir arg : 从目录 ARG 读取用户配置文件 --native-eol arg : 使用一个与标准不同的 EOL 标记 文件的系统标记是一个本地的 svn:eol-style 属性。 ARG 可能是一下之一 'LF','CR' ,'CRLF' --ignore-externals : ignore externals definitions

eg. sh> svn export http://localhost/svn/hehehehehhhe

sh> svn merge merge: 将两个来源之间的差异应用至工作拷贝路径。 用法:1 、 merge sourceURL1[@N] sourceURL2[@M] [WCPATH] 2、merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH] 3、merge -r N:M SOURCE[@REV] [WCPATH]

1、第一种形式中,来源 URL 各被指定到修订版 N 与 M。这两个就是作为比较的来源。如果没有指定修订版的话,默认为 HEAD 2、在第二种形式中,对应到两个来源的工作拷贝路径的 URL 定义出用以进行比较的来源。这里必须指定修订版。 3、第三种形式中, SOURCE 可为 URL 或工作拷贝项目,后者会使用对应的地址 (URL)。在修订版 REV 的 地址 (URL) 会以它存在于修订版 N 与 M 的路径来作比较。如果未指定 REV,就会假设为 HEAD。

WCPATH 是接受改变的工作拷贝路径。如果省略 WCPATH 的话,默认值为'.',除非来源的主要名字符合 '.' 里的某个文件;在这种情况下,文件差异将会直接应用至该文件去。

有效选项: -r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 ) 修订版参数可以是: 数字 修订版号 "{" 日期 "}" 在指定时间以后的修订版 date "HEAD" 最近的档案库 "BASE" 基线,基于修订版的工作条目 "COMMITTED" 最后提交或基线之前 "PREV" 修订版提交之前 -N [--non-recursive] : 只在单个目录操作 -q [--quiet] : 打印尽可能少 --force : 强制操作运行 --dry-run : 尝试操作但不修改 --diff3-cmd arg : 使用 ARG 作为合并命令 --ignore-ancestry : 合并时忽略原始信息 --username arg : 指定用户 ARG --password arg : 指定密码 ARG --no-auth-cache : 不要缓冲用户验证 --non-interactive : 不要交互提示 --config-dir arg : 从目录 ARG 读取用户配置文件

svn help 用法:svn [options] [args] Subversion 命令行客户端,版本 1.2.0。 请使用 “svn help ” 显示子命令的辅助说明。 大多数的子命令可接受文件或目录参数,对目录进行递回存取。 如无指定参数给命令,默认将会自当前的目录 (包含) 进 行递归存取。

可用的子命令:(括号内是子命令的简写 ) add blame (praise, annotate, ann) cat checkout (co) //从源码库取出一个工作版本的拷贝 cleanup // commit (ci) //提交当前工作拷贝的更改。这个地方是有可能出现代码冲突的。 copy (cp) //做一个工作拷贝的拷贝。 delete (del, remove, rm) //删除本地或者svn server response上的文件或者目录。 diff (di) //比较某个文件与库中的对应文件的不同,类似于系统的 diff命令。参数:文件名。 export //导出一个无版本控制的目录树拷贝。一般用于导出发行,或者投入运行的版本。 help (?, h) import //将本地当前目录下的文件导入到 svn response 中。 info //当前目录下工作拷贝中某文件 (文件夹) 的信息,如 URL,版本,修改日期等。参数:要看的文件 (文件夹) list (ls) //列出当前工作拷贝下的文件 ,相当于系统的ls命令,不过只能在工作拷贝目录下使用。 lock log merge //将两个来源之间的差异应用至工作拷贝路径。 mkdir //在本地或者 svn respon上新建一个文件夹.参数: URL或者路径 move (mv, rename, ren) propdel (pdel, pd) propedit (pedit, pe) propget (pget, pg) proplist (plist, pl) propset (pset, ps) resolved revert status (stat, st) //svn工作拷贝当前状态,与 svn server上的源码比较的结果。 switch (sw) unlock update (up) //将 svn server端文件同步到本地

>svn co checkout (co): Check out a working copy from a repository. usage: checkout URL[@REV]... [PATH]

If specified, REV determines in which revision the URL is first looked up.

If PATH is omitted, the basename of the URL will be used as the destination. If multiple URLs are given each will be checked out into a sub-directory of PATH, with the name of the sub-directory being the basename of the URL.

有效选项: -r [--revision] arg : ARG (一些命令需要 ARG1:ARG2 ) 修订版参数可以是: 数字 修订版号 "{" 日期 "}" 在指定时间以后的修订版 date "HEAD" 最近的档案库 "BASE" 基线,基于修订版的工作条目 "COMMITTED" 最后提交或基线之前 "PREV" 修订版提交之前 -q [--quiet] : 打印尽可能少 -N [--non-recursive] : 只在单个目录操作 --username arg : 指定用户 ARG --password arg : 指定密码 ARG --no-auth-cache : 不要缓冲用户验证 --non-interactive : 不要交互提示 --config-dir arg : 从目录 ARG 读取用户配置文件 --ignore-externals : ignore externals definitions

时间: 2024-08-02 04:23:09

SVN日常管理命令详解的相关文章

Linux系统进程管理命令详解

1.at命令:定时运行命令 作用:at命令在指定时刻执行指定的命令序列. 格式: at [-V] [-q x] [-f file] [-m] time atq [-V] [-q x] atrm [-V] [-q x] job- batch [-V] [-f file] [-m] 主要选项如下. -V:显示作业将被执行的时间. -q:选用q参数则可选队列名称,队列名称可以是a-z和A-Z之间的任意字母.队列字母顺序越高则队列优先级别越低. -f:从文件中读取命令或shell脚本,而非在提示后指定它

LNMP状态常用管理命令详解

LNMP状态管理命令: LNMP 1.2状态管理: lnmp {start|stop|reload|restart|kill|status} LNMP 1.2各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status} LNMP 1.1状态管理: /root/lnmp {start|stop|reload|restart|kill|status} Nginx状态管理:/e

oracle的Rman管理命令详解

一.相关查询命令 1.List 当前RMAN所备份的数据库 RMAN> list incarnation; 汇总查询:–如果备份文件多的话多用这两个list命令可以对备份文件有个总体了解. 1.1. list backup summary; –概述可用的备份 B 表示backup A 表示Archivelog. F 表示full backup. 0,1,2 表示incremental level备份 A 表示可用AVALIABLE. X 表示EXPIRED 这个命令可以派生出很多类似命令,例如

linux日志管理命令详解

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://navyaijm.blog.51cto.com/4647068/816625 志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹.日志主要的功能有:审计和监测.他还可以实时的监测系统状态,监测和追踪侵入者等等.   在Linux系统中,有三个主要的日志子系统:连接时间日志--由多个程序执行,把纪录写入到

linux 用户及用户组管理命令详解

1. useradd useradd 命令可以创建一个新的用户帐号,其最基本用法为: useradd 用户名 如输入以下命令: useradd newuser 系统将创建一个新用户 newuser,该用户的Home 目录为/home/newuser. useradd 命令的参数较多,常用的组合为: useradd 用户名 -g 组名–G 组名-d Home 目录名-p 密码 其中:-g 指定该用户的首要组 -G 指定该用户的次要组 -d 指定该用户的Home 目录 -p 指定该用户的密码 如输入

Linux管道命令详解

Linux的管道命令是'|',通过它可以对数据进行连续处理,其示意图如下: 注意: 1)管道命令仅为处理标准输出(即正确的输出),对于标准错误输出,将忽略 2)管理命令的后一个命令必须能将前一个命令的标准输出变为它的标准输入才可以,如 less,more,head,tail就可以,而ls, cp, mv就不行. 下面我们看几个管道命令. cut - 列选取命令 cut以行为单位,根据分隔符把行分成若干列,这样我们就可以指定选取哪些列了. cut -d '分隔字符' -f 选取的列数 echo $

Linux Shell脚本系列教程(二):终端打印命令详解

  这篇文章主要介绍了Linux Shell脚本系列教程(二):终端打印命令详解,本文着重讲解了echo终端打印.printf终端打印两个打印出输出命令,需要的朋友可以参考下 终端打印 终端是交互式工具,用户可以通过它与shell环境进行交互.在终端中打印文本是大多数shell脚本和工具日常需要执行的基本任务.通过终端打印,人们可以知道系统的运行状态,这对用户来说是至关重要的. echo终端打印 代码如下: echo "Welcome to Bash" echo 'Welcome to

HBase shell基础和常用命令详解

http://www.aliyun.com/zixun/aggregation/13713.html">HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 1. 简介 HBase是一个分布式的.面向列的

linux yum命令详解

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt