本手册的编写是为了描述 Subversion 1.4。如果您正在运行更新版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅与您 Subversion 版本相符的版本。

有时您只需要清理一下

当 Subversion 修改您的工作副本(或 .svn 中的任何信息)时,它会尝试尽可能安全地执行此操作。在更改工作副本之前,Subversion 会将其意图写入日志文件。接下来,它执行日志文件中的命令以应用请求的更改,并在执行期间对工作副本的相关部分保持锁定状态,以防止其他 Subversion 客户端在更改过程中访问工作副本。最后,Subversion 会删除日志文件。从结构上讲,这类似于日志文件系统。如果 Subversion 操作被打断(例如,如果进程被终止或机器发生故障),则日志文件会保留在磁盘上。通过重新执行日志文件,Subversion 可以完成先前启动的操作,并且您的工作副本可以恢复到一致的状态。

这正是 svn cleanup 所做的:它会搜索您的工作副本并运行任何剩余的日志,在此过程中删除工作副本锁定。如果 Subversion 曾经告诉您工作副本的某些部分“已锁定”,那么您应该运行此命令。此外,svn status 会在已锁定项旁边显示一个 L

$ svn status
  L    somedir
M      somedir/foo.c

$ svn cleanup
$ svn status
M      somedir/foo.c

不要将这些工作副本锁定与 Subversion 用户在使用“锁定-修改-解锁”并发版本控制模型时创建的普通锁定混淆;请参阅 锁定”的三个含义 以了解详细信息。