本文字档正在撰写中,内容随时可能变更,可能无法准确描述任何已发布的 Apache™ Subversion® 软件版本。将此页面添加为书签或将其推荐给其他人可能不是明智之举。请访问 https://svnbook.subversion.org.cn/ 获取此书的稳定版本。
svn copy (cp) - 在工作副本或仓库中复制文件或目录。
svn copy SRC[@REV]... DST
复制工作副本或仓库中的一个或多个文件。 SRC
和 DST
可以是工作副本 (WC) 路径或 URL。复制多个源文件时,将副本添加为 DST
(必须是现有目录)的直接子项。
复制并计划添加项目(包含历史记录)。
立即将 WC 的副本提交到 URL。
将 URL 检出到 WC 并计划将其添加。
完成服务器端复制。这通常用于分支和标记。
如果没有提供固定修订版本(即,@
),默认情况下,将使用 REV
BASE
修订版本复制工作副本中的文件,而将使用 HEAD
修订版本复制 URL 中的文件。
注意 | |
---|---|
您只能在一个仓库中复制文件。Subversion 不支持跨仓库复制。 |
复制工作副本中的项目(这将计划复制,在您提交之前不会有任何内容进入仓库)
$ svn copy foo.txt bar.txt A bar.txt $ svn status A + bar.txt
将工作副本中的多个文件复制到目录中
$ svn copy bat.c baz.c qux.c src A src/bat.c A src/baz.c A src/qux.c
将 bat.c
的修订版本 8 复制到工作副本中,并使用不同的名称
$ svn copy -r 8 bat.c ya-old-bat.c A ya-old-bat.c
将工作副本中的项目复制到仓库中的 URL(这将立即提交,因此您必须提供提交消息)
$ svn copy near.txt file:///var/svn/repos/test/far-away.txt -m "Remote copy." Committed revision 8.
将仓库中的项目复制到工作副本(这只会计划复制,在您提交之前不会有任何内容进入仓库)
$ svn copy file:///var/svn/repos/test/far-away -r 6 near-here A near-here
提示 | |
---|---|
这是恢复仓库中已删除文件的推荐方法! |
最后,在两个 URL 之间复制
$ svn copy file:///var/svn/repos/test/far-away \ file:///var/svn/repos/test/over-there -m "remote copy." Committed revision 9.
$ svn copy file:///var/svn/repos/test/trunk \ file:///var/svn/repos/test/tags/0.6.32-prerelease -m "tag tree" Committed revision 12.
提示 | |
---|---|
这是在仓库中 “标记” 修订版本的简便方法 - 只需将 svn copy 该修订版本(通常为 |
如果您忘记标记,请不要担心,您可以随时指定较旧的修订版本并进行标记
$ svn copy -r 11 file:///var/svn/repos/test/trunk \ file:///var/svn/repos/test/tags/0.6.32-prerelease \ -m "Forgot to tag at rev 11" Committed revision 13.