svn (六) work flow 中的3 查看更改

该 SVN状态 和 SVN的diff命令来查看你在工作拷贝所做的更改至关重要。
svn status 修改概况
? item
文件,目录或符号链接item不受版本控制。

A item
预定加入到版本库的文件,目录或符号链的item。

C item
文件item 发生了冲突。从服务器收到的修改与工作副本的本地修改发生交迭(在更新期间不会被解决)。在您提交到版本库前,必须手工解决冲突。

D item
文件,目录或符号链item预定从版本库中删除。

M item
文件item的内容被修改了。

“G” 合并
“I” 忽略
“R” 替换
“X” 未纳入版本控制,但被外部定义所用
“?” 未纳入版本控制
“!” 该项目已遗失 (被非 svn 命令所删除) 或是不完整

“~” 版本控制下的项目与其它类型的项目重名

“L” 锁定

“S” 已切换

“K” 存在锁定标记
  • options1 file
svn status /path/to/file
  • option2 -v
svn status -v //  svn status 的“长形式”,第一列的含义不变,第二列显示工作版本号。第三列和第四列显示最后一次修改的版本号和修改者。
[root@YUM svn_project1]# svn status -v
                 4        4 root         .
                 4        3  ?           file
                 4        4  ?           dir1
                 4        4  ?           dir1/file2
  • option3 -u
[root@YUM svn_project1]# svn status -vu // -u 表示 与 远程库比较
        *                                dir2/file
        *                                dir2
        *        4        3  ?           file
                 4        4  ?           dir1/file2
                 4        4  ?           dir1
        *        4        4 root         .
版本的      6 状态

svn diff 修改详情
  • svn diff 输出语法
svn diff的输出与补丁程序兼容, 所以可以用  svn diff > xxx.patch ,然后 用patch 工具 和 xxx.patch文件 来打补丁 // cd skyeye-1.3.5_rc1 && patch  -R -p1 < ../modify.patch 

  • options file
svn diff /path/to/file
  • options --diff-cmd
将用 --diff-cmd 选定的 工具(/usr/bin/diff) 来比较 ,工具(/usr/bin/diff) 的参数 用 -x 指定
svn diff --diff-cmd /usr/bin/diff  -x "-i" file

[root@YUM svn_project1]# svn diff file 
Index: file
===================================================================
--- file        (版本 6)
+++ file        (工作副本)
@@ -1,3 +1,4 @@
 20200315日 星期日 22:48:48 CST
 20200316日 星期一 00:18:53 CST
 20200316日 星期一 00:58:43 CST
+20200316日 星期一 02:56:23 CST

[root@YUM svn_project1]# svn diff --diff-cmd /usr/bin/diff  -x "-i" file
Index: file
===================================================================
3a4
> 20200316日 星期一 02:56:23 CST
[root@YUM svn_project1]# 
  • options patch
- /root/learn_svn/svn_protocol/svn_project1
[root@YUM svn_project1]# svn diff 
Index: file
===================================================================
--- file        (版本 6)
+++ file        (工作副本)
@@ -1,3 +1,4 @@
 20200315日 星期日 22:48:48 CST
 20200316日 星期一 00:18:53 CST
 20200316日 星期一 00:58:43 CST
+20200316日 星期一 02:56:23 CST
[root@YUM svn_project1]# svn diff  > patchfile
[root@YUM svn_project1]# cat patchfile
Index: file
===================================================================
--- file        (版本 6)
+++ file        (工作副本)
@@ -1,3 +1,4 @@
 20200315日 星期日 22:48:48 CST
 20200316日 星期一 00:18:53 CST
 20200316日 星期一 00:58:43 CST
+20200316日 星期一 02:56:23 CST

-----------------------------------------------/root/learn_svn/file_protocol/svn_project1
[root@YUM svn_project1]# svn status 
[root@YUM svn_project1]# patch < /root/learn_svn/svn_protocol/svn_project1/patchfile
patching file file
[root@YUM svn_project1]# svn status 
M       file
[root@YUM svn_project1]# svn diff file 
Index: file
===================================================================
--- file        (版本 6)
+++ file        (工作副本)
@@ -1,3 +1,4 @@
 20200315日 星期日 22:48:48 CST
 20200316日 星期一 00:18:53 CST
 20200316日 星期一 00:58:43 CST
+20200316日 星期一 02:56:23 CST

  • 其他
$ svn diff -r PREV:COMMITTED foo.c 
#显示提交到foo.c的最后一次更改

$ svn log -r HEAD 
#显示最新存储库提交的日志消息

$ svn diff -r HEAD 
#比较您的工作副本(包括所有本地更改的内容)到
存储库中该树的最新版本

$ svn diff -r BASE:HEAD foo.c 
#将foo.c 的未修改版本与
存储库中最新版本的foo.c比较

$ svn log -r BASE:HEAD 
#显示自您
#以来的最新版本目录的所有提交日志#上次更新

$ svn update -r PREV foo.c 
#倒退foo.c 的最新更改,减少foo.c的有效修订版

$ svn diff -r BASE:14 foo.c
#比较foo.c的未修改版本与foo.c 
在修订版14中的显示方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值