This documentation was written to describe Subversion 1.0. If you are running a newer version of Subversion, we strongly suggest that you visit http://www.svnbook.com/ and consult the version of this book appropriate for your version of Subversion.
svn copy — Copy a file or directory in a working copy or in the repository.
Copy a file in a working copy or in the repository. SRC and DST can each be either a working copy (WC) path or URL:
Copy and schedule an item for addition (with history).
Immediately commit a copy of WC to URL.
Check out URL into WC, and schedule it for addition.
Complete server-side copy. This is usually used to branch and tag.
You can only copy files within a single repository. Subversion does not support cross-repository copying.
If source or destination is in the repository, or if needed to look up the source revision number.
--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
Copy an item within your working copy (just schedules the copy—nothing goes into the repository until you commit):
$ svn copy foo.txt bar.txt A bar.txt $ svn status A + bar.txt
Copy an item in your working copy to a URL in the repository (an immediate commit, so you must supply a commit message):
$ svn copy near.txt file:///tmp/repos/test/far-away.txt -m "Remote copy." Committed revision 8.
Copy an item from the repository to your working copy (just schedules the copy—nothing goes into the repository until you commit):
This is the recommended way to resurrect a dead file in your repository!
$ svn copy file:///tmp/repos/test/far-away near-here A near-here
And finally, copying between two URLs:
$ svn copy file:///tmp/repos/test/far-away file:///tmp/repos/test/over-there -m "remote copy." Committed revision 9.
This is the easiest way to “tag” a revision in your repository—just svn copy that revision (usually HEAD) into your tags directory.
$ svn copy file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0.6.32-prerelease -m "tag tree" Committed revision 12.
And don't worry if you forgot to tag—you can always specify an older revision and tag anytime:
$ 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.