### 名称 svn copy ― 拷贝工作拷贝的一个文件或目录到版本库。 ### 概要 ~~~ svn copy SRC DST ~~~ ### 描述 拷贝工作拷贝的一个文件或目录到版本库。*`SRC`*和*`DST`*既可以是工作拷贝(WC)路径也可以是URL: WC -> WC 拷贝并且预定一个添加的项目(包含历史)。 WC -> URL 将WC或URL的拷贝立即提交。 URL -> WC 检出URL到WC,并且加入到添加计划。 URL -> URL 完全的服务器端拷贝,通常用在分支和标签。 ### 注意 你只可以在单个版本库中拷贝文件,Subversion还不支持跨版本库的拷贝。 ### 别名 cp ### 变化 如果目标是URL则包括版本库。 如果目标是WC路径,则是工作拷贝。 ### 是否访问版本库 如果目标是版本库,或者需要查看修订版本号,则会访问版本库。 ### 选项 ~~~ --message (-m) TEXT --file (-F) FILE --revision (-r) REV --quiet (-q) --username USER --password PASS --no-auth-cache --non-interactive --force-log --editor-cmd EDITOR --encoding ENC --config-dir DIR ~~~ ### 例子 拷贝工作拷贝的一个项目(只是预定要拷贝―在提交之前不会影响版本库): ~~~ $ svn copy foo.txt bar.txt A bar.txt $ svn status A + bar.txt ~~~ 拷贝你的工作拷贝的一个项目到版本库的URL(直接的提交,所以需要提供一个提交信息): ~~~ $ svn copy near.txt file:///tmp/repos/test/far-away.txt -m "Remote copy." Committed revision 8. ~~~ 拷贝版本库的一个项目到你的工作拷贝(只是预定要拷贝―在提交之前不会影响版本库): ### 提示 这是恢复死掉文件的推荐方式! ~~~ $ svn copy file:///tmp/repos/test/far-away near-here A near-here ~~~ 最后,是在URL之间拷贝: ~~~ $ svn copy file:///tmp/repos/test/far-away file:///tmp/repos/test/over-there -m "remote copy." Committed revision 9. ~~~ ### 提示 这是在版本库里作“标签”最简单的方法―**svn copy**那个修订版本(通常是`HEAD`)到你的tags目录。 ~~~ $ svn copy file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0.6.32-prerelease -m "tag tree" Committed revision 12. ~~~ 不要担心忘记作标签―你可以在以后任何时候给一个旧版本作标签: ~~~ $ svn copy -r 11 file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0.6.32-prerelease -m "Forgot to tag at rev 11" Committed revision 13. ~~~