SVN 查看历史信息


通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史:

  • svn log: 用来展示svn 的版本作者、日期、路径等等。

  • svn diff: 用来显示特定修改的行级详细信息。

  • svn cat: 取得在特定版本的某文件显示在当前屏幕。

  • svn list: 显示一个目录或某一版本存在的文件。

1、svn log

可以显示所有的信息,如果只希望查看特定的某两个版本之间的信息,可以使用:

  1. root@shouce:~/svn/shouce01/trunk# svn log -r 6:8
  2. ------------------------------------------------------------------------
  3. r6 | user02 | 2016-11-07 02:01:26 +0800 (Mon, 07 Nov 2016) | 1 line
  4.  
  5. change HelloWorld.html first.
  6. ------------------------------------------------------------------------
  7. r7 | user01 | 2016-11-07 02:23:26 +0800 (Mon, 07 Nov 2016) | 1 line
  8.  
  9. change HelloWorld.html second
  10. ------------------------------------------------------------------------
  11. r8 | user01 | 2016-11-07 02:53:13 +0800 (Mon, 07 Nov 2016) | 1 line
  12.  
  13. SVN readme.
  14. ------------------------------------------------------------------------
如果只想查看某一个文件的版本修改信息,可以使用 svn log 文件路径。如果希望得到目录的信息要加 -v
  1. root@shouce:~/svn/shouce01# svn log trunk/HelloWorld.html
  2. ------------------------------------------------------------------------
  3. r7 | user01 | 2016-11-07 02:23:26 +0800 (Mon, 07 Nov 2016) | 1 line
  4.  
  5. change HelloWorld.html second
  6. ------------------------------------------------------------------------
  7. r6 | user02 | 2016-11-07 02:01:26 +0800 (Mon, 07 Nov 2016) | 1 line
  8.  
  9. change HelloWorld.html first.
  10. ------------------------------------------------------------------------
  11. r5 | user01 | 2016-11-07 01:50:03 +0800 (Mon, 07 Nov 2016) | 1 line
  12.  
  13.  
  14. ------------------------------------------------------------------------
  15. r4 | user01 | 2016-11-07 01:45:43 +0800 (Mon, 07 Nov 2016) | 1 line
  16.  
  17. Add function to accept input and to display array contents
  18. ------------------------------------------------------------------------
  19. r3 | user01 | 2016-11-07 01:42:35 +0800 (Mon, 07 Nov 2016) | 1 line
  20.  
  21.  
  22. ------------------------------------------------------------------------
  23. r2 | user01 | 2016-08-23 17:29:02 +0800 (Tue, 23 Aug 2016) | 1 line
  24.  
  25. first file
  26. ------------------------------------------------------------------------
如果希望显示限定N条记录的目录信息,使用 svn log -l N -v
  1. root@shouce:~/svn/shouce01/trunk# svn log -l 5 -v
  2. ------------------------------------------------------------------------
  3. r6 | user02 | 2016-11-07 02:01:26 +0800 (Mon, 07 Nov 2016) | 1 line
  4. Changed paths:
  5. M /trunk/HelloWorld.html
  6.  
  7. change HelloWorld.html first.
  8. ------------------------------------------------------------------------
  9. r5 | user01 | 2016-11-07 01:50:03 +0800 (Mon, 07 Nov 2016) | 1 line
  10. Changed paths:
  11. M /trunk/HelloWorld.html
  12.  
  13.  
  14. ------------------------------------------------------------------------
  15. r4 | user01 | 2016-11-07 01:45:43 +0800 (Mon, 07 Nov 2016) | 1 line
  16. Changed paths:
  17. M /trunk/HelloWorld.html
  18.  
  19. Add function to accept input and to display array contents
  20. ------------------------------------------------------------------------
  21. r3 | user01 | 2016-11-07 01:42:35 +0800 (Mon, 07 Nov 2016) | 1 line
  22. Changed paths:
  23. A /trunk/HelloWorld.html (from /trunk/helloworld.html:2)
  24. D /trunk/helloworld.html
  25.  
  26.  
  27. ------------------------------------------------------------------------
  28. r2 | user01 | 2016-08-23 17:29:02 +0800 (Tue, 23 Aug 2016) | 1 line
  29. Changed paths:
  30. A /trunk/helloworld.html
  31.  
  32. first file
  33. ------------------------------------------------------------------------

2、svn diff

用来检查历史修改的详情。

  • 检查本地修改
  • 比较工作拷贝与版本库
  • 比较版本库与版本库

(1)、如果用 svn diff,不带任何参数,它将会比较你的工作文件与缓存在 .svn 的"原始"拷贝。

  1. root@shouce:~/svn/shouce01/trunk# svn diff
  2. Index: rules.txt
  3. ===================================================================
  4. --- rules.txt (revision 3)
  5. +++ rules.txt (working copy)
  6. @@ -1,4 +1,5 @@
  7. Be kind to others
  8. Freedom = Responsibility
  9. Everything in moderation
  10. -Chew with your mouth open
(2)、比较工作拷贝和版本库

比较你的工作拷贝和版本库中版本号为 3 的文件 rule.txt。

  1. svn diff -r 3 rule.txt

(3)、比较版本库与版本库

通过 -r(revision) 传递两个通过冒号分开的版本号,这两个版本会进行比较。

比较 svn 工作版本中版本号2和3的这个文件的变化。

  1. svn diff -r 2:3 rule.txt

3、svn cat

如果只是希望检查一个过去版本,不希望查看他们的区别,可使用svn cat

  1. svn cat -r 版本号 rule,txt

这个命令会显示在该版本号下的该文件内容

4、svn list

svn list 可以在不下载文件到本地目录的情况下来察看目录中的文件:

  1. $ svn list http://192.168.0.1/shouce01
  2. README
  3. branches/
  4. clients/
  5. tags/