LinuxSVN命令使用大全
版本号
V0.1
修订内容
详细修订日期
文件性质
备注
正在继续添加和完善...
1、 将文件checkout到本地目录
svn checkout pathpath是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、 往版本库中添加新的文件、目录或符号链
svn
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
文件、目录或符号链到你的工作拷贝并且预定添加到版本库。它们会在下次提交上传并添加到版本库,如果你在提交之前改变了主意,你可以使用svn revert取消预定。
是否访问版本库
选项
--targets FILENAME
--non-recursive (-N)
--quiet (-q)
--config-dir DIR
--no-ignore
--auto-props
--no-auto-props
--force
例子
添加一个文件到工作拷贝:
$ svn add foo.c
A        foo.c
当添加一个目录,svn add缺省的行为方式是递归的:
$ svn add testdir
A        testdir
A        testdir/a
A        testdir/b
A        testdir/c
A        testdir/d
你可以只添加一个目录而不包括其内容:
$ svn add --non-recursive otherdir
A        otherdir
通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add--force递归到版本化的目录下:
$ svn add * --force
A        foo.c
A        somedir/bar.c
A        otherdir/docs/baz.doc
3、 将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test“ test.php
简写:svn ci
4、 加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m “lock test file“ test.php
svn unlock PATH
5、 更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn  update test.php (更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、 查看文件或者目录状态
1) svn status path(目录下的文件和子目录的状态,正常状态不显示)
?:不在svn的控制中;M:内容被修改C:发生冲突;A:预定加入到版本库;K:被锁定】
2) svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn statussvn diff svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
update语法大全
7、 删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
8、 查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、 查看文件详细信息
svn info path
例如:svn info test.php
10、 比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11、 将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、 SVN 帮助
svn help []
当手边没有这本书时,这是你使用Subversion最好的朋友!
别名
?, h
使用-?-h--help选项与使用help子命令效果相同。
是否访问版本库
选项 --config-dir DIR
名称
svn merge — 应用两组源文件的差别到工作拷贝路径。
概要
svn merge [-c M | -r N:M] SOURCE[@REV] [WCPATH]
svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
描述
第一种和第二种形式里,源路径(第一种是URL,第二种是工作拷贝路径)用修订版本号NM指定,这是要比较的两组源文件,如果省略修订版本号,缺省是HEAD
-c M选项与-r N:M等价,其中N = M-1,使用-c -M则相反:-r M:N,其中N = M-1
第三种形式,SOURCE可以是URL或者工作拷贝项目,与之对应的URL会被使用。在修订版本号NMURL定义了要比较的两组源。
WCPATH是接收变化的工作拷贝路径,如果省略WCPATH,会假定缺省值“.”,除非源有相同基本名称与“.”中的某一文件名字匹配:在这种情况下,区别会应用到那个文件。
不像svn diff,合并操作在执行时会考虑文件的祖先,当你从一个分支合并到另一个分支,而这两个分支有各自重命名的文件时,这一点会非常重要。
别名
改变
工作拷贝2
是否访问版本库
只有在对URL操作时会
选项
--revision (-r) REV
--change (-c) REV
--non-recursive (-N)
--quiet (-q)
--force
--dry-run
--diff3-cmd CMD
--extensions (-x) ARG
--ignore-ancestry
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR
例子
将一个分支合并回主干(假定你有一份主干的工作拷贝,分支在修订版本250创建):
$ svn merge -r 250:HEAD d-bean/repos/branches/my-branch
如果你的分支在修订版本23,你希望将主干的修改合并到分支,你可以在你的工作拷贝的分支上这样做:
$ svn merge -r 23:30 file:///tmp/repos/trunk/vendors
合并一个单独文件的修改:
$ cd myproj
$ svn merge -r 30:
在同一个版本库进行回滚
韩捷对SystemUI的修改分别在4647版本,现在要将其回滚到未修改之前的状态,则可以这样来做。
进入到SystemUI目录,然后运行:
svn merge -r 46:45 svn://localhost/MG701/alps/frameworks/base/packages/SystemUI
svn merge -r 47:45 svn://localhost/MG701/alps/frameworks/base/packages/SystemUI
13、 版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、 创建纳入版本控制下的新目录
svn mkdir: 创建纳入版本控制下的新目录。
用法:
1) mkdir PATH…
2) mkdir URL…
创建版本控制的目录。
1) 每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。
2) 每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。
15、 恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)
revert:
用法: revert PATH…
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复
被删除的目录
16、 代码库URL变更
svn switch (sw): 更新工作副本至不同的URL

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。