¿Cómo comtesting la subversión las diferencias de files entre la copy de trabajo y el server?

Estoy tratando de entender cómo svn funciona en el nivel del socket al verificar las diferencias entre la copy de trabajo y la última revisión en el server.

He estado siguiendo este artículo: http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_ra_svn/protocol

Lo cual explica el protocolo, pero todavía no tengo claro cómo subversión verifica las diferencias cuando se emite un "estado svn".

Estoy buscando una forma de replicar este comportamiento ya que estaba implementando mi propio cliente SVN.

No, AFAIK.

Cuando ejecuta svn st , la timestamp de la copy de WC del file se compara con la timestamp de la última vez que ejecutó svn update en el WC (la copy prístina). Si difieren, se calcula una sum de comprobación del file y se compara con una sum de comprobación de la copy prístina. Si eso difiere, el algorithm diff calcula las diferencias.

Cuando ejecuta svn st -u , el cliente le dice al server "mi copy de trabajo está en la revisión X, ¿qué elementos han cambiado desde entonces?" (Nota: no "qué cambios han sucedido", sino un simple "darme una list de qué elementos han cambiado") y el server devuelve una list (incluidos los lockings que existen). No hay otra diferencia (que yo sepa) que sucede.