svn info命令命中我的svn服务器找到服务器版本号?

时间:2015-01-07 09:00:43

标签: linux svn subversive

我怀疑天气是我在我的机器上运行svn info的命令,命中/请求我的svn服务器?或者它只是找到ServerRevision&本地修订本地?

以下是svn info的输出供参考:

Path: ....
URL: https://....
Repository Root: https://...
Repository UUID: ....
Revision: 1787
Node Kind: directory
Schedule: normal
Last Changed Author: ....
Last Changed Rev: 1785
Last Changed Date: 2015-01-06 07:44:21 -0600 (Tue, 06 Jan 2015)

1787是如何进入这里的? 如果他们向我的服务器发送请求,它会在每次运行命令时请求吗?或者只在必要时发送请求?

1 个答案:

答案 0 :(得分:3)

最后一个修订本地存储在本地svn存储库缓存中。运行svn info时,没有请求发送到服务器。运行svn update时会下载修订版。因此,它可能不是最新的。

如果我们关闭网络,svn info仍然有效。观察:

dionyziz@erdos ~/valgrind % ping google.com
ping: cannot resolve google.com: Unknown host
dionyziz@erdos ~/valgrind % svn info|grep Rev
Revision: 14853
Last Changed Rev: 14853
dionyziz@erdos ~/valgrind % svn update
Updating '.':
svn: E670008: Unable to connect to a repository at URL 'svn://svn.valgrind.org/valgrind/trunk'
svn: E670008: Unknown hostname 'svn.valgrind.org'

正如您所看到的,svn info在没有网络连接的情况下工作,但svn update没有。这表示数据已在本地缓存。

确实,让我们来看看SVN的元目录.svn。它包含一个SQLite数据库,其中包含提取最新修订版所需的所有信息:

dionyziz@erdos ~/valgrind/.svn % sqlite3 wc.db
SQLite version 3.8.5 2014-08-15 22:37:57
sqlite> SELECT revision FROM nodes ORDER BY revision DESC LIMIT 1;
14853