Название

svn copy — Копирует файл или каталог в рабочей копии или хранилище.

Формат

svn copy SRC DST

Описание

Копирует файл в рабочей копии или в хранилище. SRC и DST могут быть путями как внутри рабочей копии, так и URL внутри хранилища:

WC -> WC

Планирует копирование объекта (вместе с историей).

WC -> URL

Создает копию объекта из рабочей копии непосредственно в хранилище.

URL -> WC

Выгружает копию объекта из хранилища в рабочую копию и планирует ее добавление.

URL -> URL

Выполняет копирование объектов непосредственно в хранилище. Обычно используется для ветвления.

Замечание

Вы можете копировать файлы только внутри одного хранилища. Subversion не поддерживает межхранилищного копирования.

Альтернативные имена

cp

Изменяет

Хранилище, если копия задается через URL

Рабочая копия, если копия создается внутри неё.

Требует доступа к хранилищу

Да, если копируемый объект или его копия расположены в хранилище, а так же если необходимо найти исходный номер редакции.

Параметры

--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

И наконец, копирование внутри хранилища:

$ svn copy file:///tmp/repos/test/far-away file:///tmp/repos/test/over-there -m "remote copy."

Committed revision 9.

Подсказка

Это простейший способ «пометить» редакцию в хранилище—просто выполните svn copy желаемой редакции (хотя обычно это HEAD) в желаемый каталог.

$ 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.