2010-02-25 20 views
109

La siguiente acción solo creará una bifurcación desde la revisión principal de la troncal. ¿Cómo creo una rama a partir de una revisión específica? Gracias.svn: cómo crear una rama desde cierta revisión de troncal

$ 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

Solo para observar que las dos barras invertidas (\) están ahí para ignorar caracteres de nueva línea ... y no es parte del comando svn –

Respuesta

153

Salida del comando de ayuda:

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 

Para especificar hecho esto en la línea de comandos usando tu ejemplo:

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

Dónde 123 sería el número de revisión en el maletero que desea copiar. Como otros han notado, también puedes usar la sintaxis @. Prefiero la separación más clara del número de revisión de la URL, personalmente.

Como se señaló en la ayuda, se puede reemplazar la revisión # con ciertas palabras así:

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

copiaría la "revisión justo antes COMPROMETIDO".

+0

Además, en el ejemplo anterior, si la revisión '123' no se produjo debajo de' trunk', entonces la sintaxis 'copy ... trunk @ 123 ...' puede fallar con 'Path ... trunk @ 123 does not exists en la revisión 768' (donde '768' es el último repo), mientras que' -r 123' hará lo correcto. Observado con clientes SVN mayores, puede o no ser el caso con 1.6. – vladr

+3

El argumento -rREV no siempre funciona. A veces necesitas @REV. Consulte http://stackoverflow.com/questions/6591938/svn-copy-r-revision-number-url-path – Mojca

+1

-r que funciona con svn, versión 1.7.13 (r1516569) en Mac OS X a través de Homebrew. – kakyo

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

Donde 192 es la revisión se especifica

Usted puede encontrar esta información de la SVN Book, específicamente here on the page about svn copy

17

anexar la revisión utilizando un "@" caracteres:

svn copy http://[email protected] http://dev 

O, use el argumento de la línea de comando -r [--revision] Nuevo Testamento.

+0

Gracias por esto. No se pudo decir si se necesitaban corchetes de la página del manual. Debería haber pensado que estaban usando EBNF. – rstackhouse

Cuestiones relacionadas