我有一个 SVN 存储库的工作副本,但由于服务器故障,远程 SVN 服务器/存储库丢失。
在工作副本中,有一个“.svn”目录,其中包含一个“wc.db”文件等。
我的问题是:是否可以从这些文件中获取有关存储库/工作副本的信息?我对工作副本中文件的修改时间/签入时间特别感兴趣。
非常感谢你的帮助!
我有一个 SVN 存储库的工作副本,但由于服务器故障,远程 SVN 服务器/存储库丢失。
在工作副本中,有一个“.svn”目录,其中包含一个“wc.db”文件等。
我的问题是:是否可以从这些文件中获取有关存储库/工作副本的信息?我对工作副本中文件的修改时间/签入时间特别感兴趣。
非常感谢你的帮助!
我相信这wc.db
只是一个 sqlite 数据库,因此请自己使用 sqlite 数据库工具并打开文件(如果您不想通过命令行解决)。
无法告诉您其中的内容,因为我没有要查看的 db 文件,但是使用 sqlite 浏览器工具,您应该能够自己解决。
如果你能得到一个可以让你对 SQLite 数据库执行查询的程序,把它指向 wc.db。就我而言,我有一个名为“Documentation”的 WC,并且我已经下载了 sqlite3.exe。
C:\...\_Projects\Documentation\.svn>C:\_apps\sqlite3.exe .\wc.db
这使我进入 SQLite 命令外壳。
C:\...\_Projects\Documentation\.svn>C:\_apps\sqlite3.exe .\wc.db
SQLite version 3.7.14.1 2012-10-04 19:37:12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select local_relpath, changed_date, last_mod_time from nodes;
从这里开始,您需要格式化时间戳以获得可用的东西。请参阅SQLite 文档以获取参考。我稍微修改了一下,但没有走得很远。您可能需要深入研究 SVN WC 库来弄清楚如何正确解释这些时间戳。
注意:此数据仅与您上次运行时一样好svn update
。
但是,如果没有对真实存储库的可靠备份,您只是在使用创可贴并将所有东西重新组合在一起。