svn copy — 作業コピーやリポジトリ中の、ファイルやディレクトリをコピーします。
作業コピーやリポジトリ中の複数のファイルをコピーします。コピー元が複数ある場合、DST
以下に追加します。SRC と DST
は、作業コピー (WC) 上のパスでも、URLでもかまいません。
追加用に項目をコピーし、追加準備をします (履歴含む)。
WC のコピーを、直接 URL にコミットします。
URL を WC にチェックアウトし、追加準備をします。
完全なサーバ上でのコピーです。通常ブランチやタグに利用します。
複数のコピー元をコピーする際、DST
以下に追加されます。DST はディレクトリでなくてはなりません。
peg リビジョン (例: @REV)
を指定しないと、デフォルトでは、作業コピーからコピーする場合は、BASE リビジョンを用い、URL
からコピーする場合は HEAD リビジョンを用います。
ファイルはひとつのリポジトリ内でのみコピーできます。 Subversion はリポジトリ間コピーをサポートしていません。
--editor-cmd EDITOR --encoding ENC --file (-F) FILE --force-log --message (-m) TEXT --parents --quiet (-q) --revision (-r) REV --with-revprop ARG
作業コピー中の項目をコピーします (コピー準備のみ—次のコミットまでリポジトリには何も起こりません)。
$ svn copy foo.txt bar.txt A bar.txt $ svn status A + bar.txt
作業コピー内の、複数のファイルをサブディレクトリにコピーします。
$ svn cp bat.c baz.c qux.c src A src/bat.c A src/baz.c A src/qux.c
bat.c のリビジョン 8 を、作業コピーに別の名前でコピーします。
$ svn cp -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." リビジョン 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."
リビジョン 9 をコミットしました。
$ svn copy file:///var/svn/repos/test/trunk \
file:///var/svn/repos/test/tags/0.6.32-prerelease -m "tag tree"
リビジョン 12 をコミットしました。
リポジトリ中のリビジョンに「tag」をつける一番簡単な方法は……そのリビジョン (通常
HEAD) を tags ディレクトリに、単に 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"
リビジョン 13 をコミットしました。