1、Linux命令行下将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、Linux命令行下往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、Linux命令行下将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test“ test.php
4、Linux命令行下的加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m “lock test file“ test.php
svn unlock PATH
5、Linux命令行下更新到某个版本
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、Linux命令行下查看文件或者目录状态
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、Linux命令行下删除文件
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、Linux命令行下查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、Linux命令行下查看文件详细信息
svn info path
例如:svn info test.php
10、Linux命令行下比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
一下介绍一下 有关svn中文本回滚
svn log -v 显示所有影响文件的路径及日志
svn log -l 1 -v 显示最近的1个版本的影响文件的路径及日志
svn log -r ver1:ver2 查看2个版本之间的所有日志
svn log -v |sed -n '1p; 2,/^-/d; /wangyong/,/^-/p' |less 查询wangyong提交的日志
svn diff -r version1:version2 比较2个版本之间的区别
版本回滚
svn merge ./ -r latested-version : x-version
svn st
svn ci -m
上面方法复杂了其实svn up就带有获取到指定版本的功能 更简单
rm -rf *
svn up -r 版本号
- svn log -v 显示所有日志 并带修改的文件名
- svn log -r ver1:ver2 显示2个版本之间的改动
- svn diff -r ver1:ver2
- 版本回滚
- 综上,最必要的就是3个步骤:
- 1. 确定版本号 svn log <file>
- 2. 合并 svn merge -r <latest revision>:<last revision> <file>
- 3. commit. svn ci -m 'rollback to last revision:' <file>
16、恢复本地修改
用法: revert PATH…
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复
被删除的目录
17、代码库URL变更
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将
服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的
方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动
(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用
这个命令更新工作副本与仓库的对应关系。
18、解决冲突
用法: resolved PATH…
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的
相关文件,然后让 PATH 可以再次提交。
19、输出指定文件或URL的内容。
svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)
部分功能追加:
$ svn list file:///usr/local/svn/calc/ branches/ tags/ trunk/ readme.txt
好了,你肯定想到了,我直接checkout这个文件就是,那么就试试下面的指令吧
$ svn co file:///usr/local/svn/calc/readme.txt svn: URL 'file:///usr/local/svn/calc/readme.txt' refers to a file, not a directory
你将会得到一个“URL XXX refers to a file, not a directory”错误,这是因为checkout指令只能针对文件夹。
正确的做法应该是这样
$ svn co --depth=empty file:///usr/local/svn/calc calc_new $ cd calc_new $ svn up readme.txt
其中,calc_new为checkout后的文件夹名,自己可以随意指定,执行svn co命令后,会得到一个名为calc_new的空目录,里面什么都没有,而实现这一效果的就是参数中指定的depth=empty。
下一步就是进入刚刚checkout下来的calc_new目录,执行update操作,想取哪个文件就checkout哪个文件就好了。
以上命令都是 从网上复制粘贴的 ,绝对是转载!