svn: як створити гілку з певного перегляду стовбура


116

Наступна дія створить лише гілку з головної ревізії стовбура. Як створити гілку з певної версії? Дякую.

$ svn copy http://svn.example.com/repos/calc/trunk \
       http://svn.example.com/repos/calc/branches/my-calc-branch \
  -m "Creating a private branch of /calc/trunk."

2
Зауважимо лише, що два косих риски () є для того, щоб ігнорувати символи нового рядка ... і це не є частиною команди svn
Гаррі Лайм

Відповіді:


163

Перевірте команду довідки:

svn help copy

  -r [--revision] arg      : ARG (some commands also take ARG1:ARG2 range)
                             A revision argument can be one of:
                                NUMBER       revision number
                                '{' DATE '}' revision at start of the date
                                'HEAD'       latest in repository
                                'BASE'       base rev of item's working copy
                                'COMMITTED'  last commit at or before BASE
                                'PREV'       revision just before COMMITTED

Щоб фактично вказати це в командному рядку, використовуючи ваш приклад:

svn copy -r123 http://svn.example.com/repos/calc/trunk \
    http://svn.example.com/repos/calc/branches/my-calc-branch

Куди 123буде номер ревізії в магістралі, яку ви хочете скопіювати. Як зазначали інші, ви також можете використовувати синтаксис @. Я особисто віддаю перевагу більш чіткому відокремленню редакції № від URL-адреси.

Як зазначено у довідці, ви можете також замінити версію # на певні слова:

svn copy -rPREV http://svn.example.com/repos/calc/trunk \
    http://svn.example.com/repos/calc/branches/my-calc-branch

Буде скопійовано "редакцію безпосередньо перед ВВІДКЛЕНОЮ".


Крім того, у наведеному вище прикладі, якщо перегляд 123не відбувся під ним trunk, copy ...trunk@123 ...синтаксис може вийти з ладу Path ...trunk@123 does not exist in revision 768(де 768репортаж останній), тоді як -r 123буде зроблено правильно. Спостерігається за старими клієнтами SVN, може бути, а може і не бути, як це стосується 1.6.
vladr

3
Аргумент -rREV не завжди працює. Іноді вам потрібен @REV. Див stackoverflow.com/questions/6591938 / ...
Mojca

1
-r працює зі svn, версія 1.7.13 (r1516569) на Mac OS X через Homebrew.
kakyo


19

додати редакцію за допомогою символу "@":

svn copy http://src@REV http://dev

Або скористайтеся аргументом командного рядка -r [--revision].


Дякую за це Не вдалося визначити, чи потрібні квадратні дужки зі сторінки man. Треба було подумати, що вони використовують EBNF.
rstackhouse

0

Спробуйте нижче одного:

svn copy http://svn.example.com/repos/calc/trunk@rev-no 
       http://svn.example.com/repos/calc/branches/my-calc-branch 
  -m "Creating a private branch of /calc/trunk."  --parents

Немає косої риски "\" між URL-адресами svn.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.