这份文档是为了描述 Subversion 1.1 而编写的。如果您正在运行更新版本的 Subversion,我们强烈建议您访问 https://svnbooks.subversion.org.cn/ 并查阅适合您的 Subversion 版本的书籍。

其他有用命令

虽然这些命令不像本章前面讨论的那些命令那样常用,但您偶尔需要用到它们。

svn cleanup

当 Subversion 修改您的工作副本(或其中的任何信息)时.svn),它会尽力安全地执行操作。在更改工作副本之前,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

svn import

svn import 命令是一种将未版本化的文件树快速复制到存储库中的方法,它会根据需要创建中间目录。

$ svnadmin create /usr/local/svn/newrepos
$ svn import mytree file:///usr/local/svn/newrepos/some/project
Adding         mytree/foo.c
Adding         mytree/bar.c
Adding         mytree/subdir
Adding         mytree/subdir/quux.h

Committed revision 1.

前面的示例将目录mytree的内容复制到目录some/project下的存储库

$ svn list file:///usr/local/svn/newrepos/some/project
bar.c
foo.c
subdir/

请注意,导入完成后,原始树 不会 转换为工作副本。要开始工作,您仍然需要 svn checkout 树的新工作副本。

TortoiseSVN 官方中文版 1.14.7 发布