如何验证Subversion工作副本

Álv*_*lez 12 svn tortoisesvn

我有一个Subversion工作副本,至少有一个丢失的文件(在修复树冲突时删除了本地副本).这很有趣,因为文件是版本化的,它出现在存储库中,树冲突解决方案是100%本地的(它发生在更新时我没有事后提交)而且我已经运行了几次"svn cleanup"但是没有我的Subversion客户端(命令行svn和TortoiseSVN)可以检测到工作副本是否已损坏.甚至没有恢复所有更改都将文件恢复.

我会像往常一样修复它(在其他地方重新结账并使用WinMerge复制更改); 我其实有一个不同的问题:

如何测试工作副本的有效性?

当然,您可以随时查看新副本并使用文件比较实用程序,但......是不是有更好的方法?是否有工具来验证相当于的工作副本svnadmin verify

===更新===

我有很好的答案可以防止工作副本损坏,但我的问题更多的是找到一种方法来100%确定工作副本是连贯的并与实际的存储库内容链接; 在其他工作中,相当于svnadmin verify命令的工作副本.

到目前为止,它看起来像:

  • Subversion不提供这样的工具,SVN数据格式甚至不允许写一个.

  • 更新到修订版是一种似乎找到(并修复)某些问题的技术,尽管您经常需要来回恢复到旧版本,我想它只能检测丢失的文件(如果它们已在修订版本范围内更改).

  • 签出一份新的工作副本看起来像是唯一100%可靠的方法.

Álv*_*lez 1

到目前为止,我不得不假设没有可靠的方法来做到这一点,除非您进行新的提交并比较两个目录树。如果.snv目录丢失数据但实际上并未损坏,则工作副本中没有足够的信息来检测某些文件是否已消失。

虽然WC-NG可能会更好地(或不会)改变这一点,但当前的格式并不是那么坚如磐石。