This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
svn copy (cp) — 在工作副本或仓库中复制一个文件或目录.
svn copy
SRC
[@REV
]... DST
在工作副本或仓库中复制一个或多个文件.
SRC
和 DST
可以是一个工作副本 (WC) 路径或 URL. 当复制多个源文件时, 每个源文件
都将是 DST
(此时
DST
必须是一个已存在的目录) 的直接子文件.
复制并添加一个工作副本路径 (包含历史).
立刻把 WC 的副本提交到 URL.
把 URL 检出到 WC, 并添加 WC.
执行一个服务器端的复制. 这通常用于创建分支和标签.
如果没有提供限定版本号 (即
@
), 那么在复制工作
副本路径时, 默认使用 REV
BASE
版本号, 在复制 URL
时默认使用 HEAD
版本号.
注意 | |
---|---|
你只能在同一个仓库内复制文件, 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
把工作副本里的文件复制到仓库中 (这个复制会马上提交, 所以用户 需要提供提交日志消息):
$ 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 复制到另一个 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.