Название

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.