svn查看操作
1、svn log —— 显示服务器中各版本的作者、提交日期、备注信息等
svn log
svn log -r 2:3 显示指定的两个版本的log信息
svn log file 显示指定文件的log信息
svn log -v 显示log信息(包含具体修改文件)
svn log -l 5 显示5条log信息
注:这些命令均可以混合起来使用,如:svn log -l n -v 为显示n条包含具体修改文件信息的log
2、svn diff —— 比较当前目录下的工作文件和缓存在.svn的拷贝“原始版本”(服务器中的最新版本)
svn diff
svn diff -r 2 比较你的工作拷贝和版本库中版本号为 2 的文件
svn diff -r 2:3 比较svn工作版本中版本2和版本3 当前目录文件的变化
3、svn cat —— 将文件内容显示出来
svn cat -r 2 file 查看版本2的file文件的内容
4、svn list —— 查看文件列表(缩写:svn ls)
svn ls -r 100 查看指定版本号的文件列表
svn提交操作
具体可看我另一篇博客:svn commit用法
5、svn status —— 查看工作拷贝和版本库里面的文件的区别
svn status
文件名前的标志:
?: 未纳入版本控制
M:文件已修改(在版本控制中,提交将会覆盖svn服务器中的版本)
A:添加文件至服务器中
6、svn add —— 将file文件纳入版本控制
svn add path 把path路径下的文件/文件夹(里面的文件也包含)全部纳入版本控制
svn add folder --non-recursive 把文件夹folder纳入版本控制,但是folder文件夹里的文件不添加(non-revursive 不递归)
svn add * 把当前目录所以未添加到版本控制的文件全部添加进去 (如果有文件夹是non-revursive的则不添加该文件夹里的文件)
svm add * --force 把当前目录所以未添加到版本控制的文件全部添加进去(包括non-revursive的文件夹里的文件,包括和服务器中存在的相同的文件(将会覆盖))
svn add . --no-ignore --force 把当前目录下所以未添加的文件(包括.project文件等,不忽略任何文件)添加到版本控制中
7、svn revert —— 放弃工作拷贝的修改,恢复文件到服务器上的最新版本
svn revert file 把file文件恢复到原始状态(服务器上的版本)
svn revert -R path 把目录恢复原始状态
8、svn delete —— 从工作拷贝或版本库删除一个项目
svn delete file 从本地目录中删除file文件(之后svn commit就是从版本库中删除该文件)
9、svn commit —— 提交文件至服务器并自动生成新的版本log
svn commit path1 path2 -m"Message"
10、svn checkout —— 把源代码检出(下载)到本地目录(缩写:svn co)
svn checkout svn://192.168.30.20/..(源代码地址)
11、svn update —— 更新当前目录(缩写:svn up)
svn up -r 2 更新当前目录至第2版本
12、svn resolve —— 移除工作拷贝的目录或文件的“冲突”状态
该命令不是用于解决冲突,只是用于删除有冲突的文件(当提交文件时出现conflict,需要自己查看冲突并解决,在解决之后可以使用svn resolve来决定移除哪些有冲突的文件:选择保留工作拷贝的版本或服务器的版本等)
具体解决冲突的步骤可看我的另一篇博客:svn——conflict问题解决
13、svn lock —— 锁定工作拷贝中的文件,不允许别的用户更改提交
用户使用svn lock上锁后,别的用户不能对上锁的文件进行提交,除非使用lock的用户执行svn unlock或者提交更新后,lock会自动解除,这时别的用户就可以进行修改提交了。
svn lock
锁定之后svn status查看状态:显示状态为k(被锁住了)
14、svn unlock —— 解锁工作拷贝中的文件,允许别的用户进行更改提交
svn unlock
解锁后svn status没有显示任何状态,即MainActivity.java已解锁
15、svn cleanup —— 清理
16、svn blame —— 显示每行代码最近的修改用户名
svn blame file 显示file文件每行代码最近的修改用户名