【问题标题】:How does subversion check file differences between working copy & server?subversion 如何检查工作副本和服务器之间的文件差异?
【发布时间】:2013-05-20 05:28:54
【问题描述】:

在检查工作副本和服务器上的最新版本之间的差异时,我试图了解 svn 在套接字级别的工作原理。

我一直在关注这篇文章: http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_ra_svn/protocol

这解释了协议,但我仍然不清楚 subversion 在您发出“svn 状态”时如何检查差异。

我正在寻找一种可以复制这种行为的方法,就像我正在实现自己的 SVN 客户端一样。

【问题讨论】:

  • svn status 使用 .svn 目录下下载文件的原始副本来比较它们——我认为它不会发出差异。

标签: svn


【解决方案1】:

它没有,AFAIK。

当您运行 svn st 时,会根据您上次在 WC(原始副本)上运行 svn update 的时间戳检查文件 WC 副本的时间戳。如果它们不同,则计算文件的校验和并与原始副本的校验和进行比较。如果不同,则 diff 算法会计算差异。

当您运行svn st -u 时,客户端对服务器说“我的工作副本是修订版 X,从那以后有哪些项目发生了变化?” (注意:不是“发生了什么变化”,而是一个简单的“给我一个列表已经改变的项目”)并且服务器返回一个列表(包括任何锁存在的)。没有其他差异(我知道)发生。

【讨论】:

    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    相关资源
    最近更新 更多