SVN 第7章 svnlook

2021-06-10 鲁鲁槟 收藏

①、svnlook

A、描述

svnadmin setlog REPOS_PATH -r REVISION FILE

svnlook是检验Subversion版本库不同方面的命令行工具,它不会对版本库有任何修改―它只是用来“看”。svnlook通常被版本库钩子使用,但是版本库管理也会发现它在诊断目的上也非常有用。

因为svnlook通过直接版本库访问(因此只可以在保存版本库的机器上工作)工作,所以他通过版本库的路径访问,而不是URL。

如果没有指定修订版本或事物,svnlook缺省的是版本库最年轻的(最新的)修订版本。

B、选项

svnlook的选项是全局的,就像svn和svnadmin;然而,大多数选项只会应用到一个子命令,因为svnlook的功能是(有意的)限制在一定范围的。

  • --no-diff-deleted:防止svnlook打印删除文件的区别,缺省的行为方式是当一个文件在一次事物/修订版本中删除后,得到的结果与保留这个文件的内容变成空相同。

  • --revision (-r):指定要进行检查的特定修订版本。

  • --transaction (-t):指定一个希望检查的特定事物ID。

  • --show-ids:显示文件系统树中每条路径的文件系统节点修订版本ID。

②、svnlook author

A、描述

svnlook author REPOS_PATH

打印版本库一个修订版本或者事物的作者。

B、选项

  • --revision (-r)

  • --transaction (-t)

C、例子

svnlook author垂手可得,但是并不令人激动:

$ svnlook author -r 40 /usr/local/svn/repos 
sally

③、svnlook cat

A、描述

svnlook cat REPOS_PATH PATH_IN_REPOS

打印一个文件的内容。

B、选项

  • --revision (-r)

  • --transaction (-t)

C、例子

这会显示事物ax8中一个文件的内容,位于/trunk/README:

$ svnlook cat -t ax8 /usr/local/svn/repos /trunk/README
               Subversion, a version control system.
               =====================================
$LastChangedDate: 2003-07-17 10:45:25 -0500 (Thu, 17 Jul 2003) $
Contents:
     I. A FEW POINTERS
    II. DOCUMENTATION
   III. PARTICIPATING IN THE SUBVERSION COMMUNITY

④、svnlook changed

A、描述

svnlook changed REPOS_PATH

打印在特定修订版本或事物修改的路径,也是在第一列使用“svn update样式的”状态字符:A表示添加,D表示删除,U表示更新(修改)。

B、选项

  • --revision (-r)

  • --transaction (-t)

C、例子

显示在测试版本库修订版本39修改的文件列表:

$ svnlook changed -r 39 /usr/local/svn/repos
A   trunk/vendors/deli/
A   trunk/vendors/deli/chips.txt
A   trunk/vendors/deli/sandwich.txt
A   trunk/vendors/deli/pickle.txt

⑤、svnlook date

A、描述

svnlook date REPOS_PATH

打印版本库一个修订版本或事物的时间戳。

B、选项

  • --revision (-r)

  • --transaction (-t)

C、例子

显示测试版本库修订版本40的日期:

$ svnlook date -r 40 /tmp/repos/
2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003)

⑥、svnlook diff

A、描述

svnlook diff REPOS_PATH

打印版本库中GNU样式的文件和属性修改区别。

B、选项

  • --revision (-r)

  • --transaction (-t)

  • --no-diff-deleted

C、例子

这显示了一个新添加的(空的)文件,一个删除的文件和一个拷贝的文件:

$ svnlook diff -r 40 /usr/local/svn/repos/
Copied: egg.txt (from rev 39, trunk/vendors/deli/pickle.txt)
Added: trunk/vendors/deli/soda.txt
==============================================================================
Modified: trunk/vendors/deli/sandwich.txt
==============================================================================
--- trunk/vendors/deli/sandwich.txt(original)
+++ trunk/vendors/deli/sandwich.txt2003-02-22 17:45:04.000000000 -0600
@@ -0,0 +1 @@
+Don't forget the mayo!
Modified: trunk/vendors/deli/logo.jpg
==============================================================================
(Binary files differ)
Deleted: trunk/vendors/deli/chips.txt
==============================================================================
Deleted: trunk/vendors/deli/pickle.txt
==============================================================================

如果一个文件有非文本的svn:mime-type属性,区别不会明确显示。

⑦、svnlook dirs-changed

A、描述

svnlook dirs-changed REPOS_PATH

打印本身修改(属性编辑)或子文件修改的目录。

B、选项

  • --revision (-r)

  • --transaction (-t)

C、例子

这显示了在我们的实例版本库中在修订版本40修改的目录:

$ svnlook dirs-changed -r 40 /usr/local/svn/repos
trunk/vendors/deli/

⑧、svnlook help

A、描述

svnlook help

显示svnlook的帮助信息,这个命令如同svn help的兄弟,也是你的朋友,即使你从不调用它,并且忘掉了邀请它加入你的上一次聚会。

B、别名

, h

⑨、svnlook history

⑦、svnlook dirs-changed

A、描述

svnlook history REPOS_PATH [PATH_IN_REPOS]

打印版本库(如果没有路径,则是根目录)某一个路径的历史。

B、选项

  • --revision (-r)

  • --transaction (-t)

C、例子

这显示了实例版本库中作为修订版本20的路径/tags/1.0的历史输出。

$ svnlook history -r 20 /usr/local/svn/repos /tags/1.0 --show-ids
REVISION   PATH <ID>
--------   ---------
      19   /tags/1.0 <1.2.12>
      17   /branches/1.0-rc2 <1.1.10>
      16   /branches/1.0-rc2 <1.1.x>
      14   /trunk <1.0.q>
      13   /trunk <1.0.o>
      11   /trunk <1.0.k>
       9   /trunk <1.0.g>
       8   /trunk <1.0.e>
       7   /trunk <1.0.b>
       6   /trunk <1.0.9>
       5   /trunk <1.0.7>
       4   /trunk <1.0.6>
       2   /trunk <1.0.3>
       1   /trunk <1.0.2>

⑧、svnlook info

A、描述

svnlook info REPOS_PATH

打印作者、时间戳、日志信息大小和日志信息。

B、选项

  • --revision (-r)

  • --transaction (-t)

C、例子

显示了你的实例版本库在修订版本40的信息输出。

$ svnlook info -r 40 /usr/local/svn/repos
sally
2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003)
15
Rearrange lunch.

⑨、svnlook log

A、描述

svnlook log REPOS_PATH

打印日志信息。

B、选项

  • --revision (-r)

  • --transaction (-t)

C、例子

这显示了实例版本库在修订版本40的日志输出:

$ svnlook log /tmp/repos/
Rearrange lunch.

⑩、svnlook propget

A、描述

svnlook propget REPOS_PATH PROPNAME [PATH_IN_REPOS]

列出版本库中一个路径一个属性的值。

B、别名

pg, pget

C、选项

  • --revision (-r)

  • --transaction (-t)

D、例子

这显示了HEAD修订版本中文件/trunk/sandwich的“seasonings”属性的值:

$ svnlook pg /usr/local/svn/repos seasonings /trunk/sandwich
mustard

⑪、svnlook proplist

A、描述

svnlook proplist REPOS_PATH [PATH_IN_REPOS]

列出版本库中一个路径的属性,使用--verbose选项也会显示所有的属性值。

B、别名

pl, plist

C、选项

  • --revision (-r)

  • --transaction (-t)

  • --verbose (-v)

D、例子

这显示了HEAD修订版本中/trunk/README的属性名称:

$ svnlook proplist /usr/local/svn/repos /trunk/README
  original-author
  svn:mime-type

这与前一个例子是同一个命令,但是同时显示了属性值:

$ svnlook --verbose proplist /usr/local/svn/repos /trunk/README
  original-author : fitz
  svn:mime-type : text/plain

⑫、svnlook tree

A、描述

svnlook tree REPOS_PATH [PATH_IN_REPOS]

打印树,从*PATH_IN_REPOS*(如果提供,会作为树的根)开始,可以选择显示节点修订版本ID。

B、选项

  • --revision (-r)

  • --transaction (-t)

  • --show-ids

C、例子

这会显示实例版本库中修订版本40的树输出(包括节点ID):

$ svnlook tree -r 40 /usr/local/svn/repos --show-ids
/ <0.0.2j>
 trunk/ <p.0.2j>
  vendors/ <q.0.2j>
   deli/ <1g.0.2j>
    egg.txt <1i.e.2j>
    soda.txt <1k.0.2j>
    sandwich.txt <1j.0.2j>

⑬、svnlook uuid

A、描述

svnlook uuid REPOS_PATH

打印版本库的UUID,UUID是版本库的Universal Unique IDentifier(全局唯一标示),Subversion客户端可以使用这个标示区分不同的版本库。

B、例子

$ svnlook uuid /usr/local/svn/repos
e7fe1b91-8cd5-0310-98dd-2f12e793c5e8

⑭、svnlook youngest

A、描述

svnlook youngest REPOS_PATH

打印一个版本库最年轻的修订版本号。

B、例子

这显示了在实例版本库显示最年轻的修订版本:

$ svnlook youngest /tmp/repos/ 
42
阅读 166