Linux下svn命令
1. 将文件checkout到本地目录
格式:svn checkout path
例如:svn checkout http://172.18.58.238/repos/dir_645
简写:svn co path
注:path就是服务器中的目录或者文件
2. 往版本库中添加新的文件
格式:svn add file1[ file2...]
例如:svn add file1.php file2.php
svn add *.php(添加当前目录下所有的.php文件)
3. 更新到某个版本
格式:svn update -r m path
例如:svn update 默认将当前目录以及子目录下的所有文件都更新到最新版
svn update -r 1023 UserContorller.php(将版本库中的UserContorller.php还原到1023版)
svn update UserContoller.php(更新,与版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
4. 将改动的文件提交到版本库
格式:svn commit -m "LogMessage" [-N] [--no-unlock] PATH... (如果选择了保持锁,就使用--no-unlock开关)
例如:svn commit -m "Develop:add UserModel." UserModel.php
简写:svn ci
5. 加锁/解锁
格式:svn lock -m "LockMessage" [--force] PATH...
例如:svn lock -m "lock the file." UserContorller.php
格式:svn unlock PATH
6. 查看文件或者目录状态
1) svn status [path...] (目录下的文件和子目录的状态,正常状态不显示)
[?:不在svn的控制中; M:内容被修改; C:发生冲突; A:预定加入到版本库; K:被锁定]
2) svn status -v [path...] (显示文件和子目录的状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff、svn revert这三条命令在没有网络的情况下也可以执行,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7. 删除文件
格式:svn delete path -m "DeleteMessage"
例如:svn delete UsersContorller.php -m "Develop:remove the file."
或者直接svn delete UsersContorller.php 然后再svn ci -m "Develop:remove the file."
简写:svn (del/remove/rm)
8. 查看日志
格式:svn log [path]
例如:svn log UserModel.php 显示这个文件的所有修改记录,及版本号的变化
9. 查看文件详细信息
格式:svn info [path]
例如:svn info UserContorller.php
10. 比较差异
格式:svn diff [-r m:n] [path]
例如:svn diff UserContorller.php(将修改的文件与基础版本比较,+/-表示)
svn diff -r 1200:1201 UserContorller.php(对版本m和版本n比较差异)
简写:svn di
11. 将两个版本之间的差异合并到当前文件
格式:svn merge -r m:n path
例如:svn merge -r 1200:1201 UserContorller.php(将版本1200与1201之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12. svn帮助
格式:svn help
svn help ci
13. 版本库下的文件和目录列表
格式:svn list [path]
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14. 创建纳入版本控制下的新目录
格式:svn mkdir 创建纳入版本控制下的新目录
用法:
1. mkdir PATH...
2. mkdir URL...
创建版本控制的目录
1. 每一个以工作副本PATH指定的目录,都会创建在本地端,并且加入新增高调度,以待下一次的提交
2. 每个以url指定的目录,都会透过立即提交于仓库中创建
在这两个情况下,所有的中间目录都必须事先存在
15. 恢复本地修改
格式:svn revert 恢复原始未改变的工作副本文件(恢复大部分的本地修改)
用法:svn revert PATH...
注意:本子命令不会存取网络,并且会解除冲突的状况,但是它不会恢复被删除的目录
16. 代码库URL变更
格式:svn switch 更新工作副本到不同的URL
用法:
1. svn switch URL[PATH...]
2. svn switch -relocate FROM TO [PATH...]
1. 更新你的工作副本,映射到一个新的URL,其行为跟"svn update"很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法
2. 改写工作副本的URL源数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或者主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。
简写:svn sw
17. 解决冲突
格式:svn resolved 移除工作副本的目录或文件的"冲突"状态
用法:svn resolved PATH...
注意:本子命令不会依语法来解决冲突或是移除冲突标记,它只是移除冲突的相关文件,然后再让PATH可以再次提交。
18. 输出指定文件或URL的内容
格式:svn cat 目录[@版本]... 如果指定了版本,将从指定的版本开始查找
用法:svn cat -r PREV filename > filename (PREV是上一版本,也可以写具体的版本号,这样输出结果是可以提交的)