我怀疑天气是我在我的机器上运行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是如何进入这里的? 如果他们向我的服务器发送请求,它会在每次运行命令时请求吗?或者只在必要时发送请求?
答案 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