120 votes

svn : comment créer une branche à partir d'une certaine révision du tronc

L'action suivante créera uniquement une branche à partir de la révision principale du tronc. Comment puis-je créer une branche à partir d'une révision spécifique ? Merci.

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

Il est à noter que les deux barres obliques inversées () sont là pour ignorer les caractères de nouvelle ligne... et ne font pas partie de la commande svn.

0 votes

Remarque : les syntaxes -r REV et url@REV sont les suivantes non équivalent .

167voto

typeoneerror Points 19087

Consultez la commande d'aide :

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

Pour spécifier ceci sur la ligne de commande en utilisant votre exemple :

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

123 serait le numéro de révision du tronc que vous voulez copier. Comme d'autres l'ont noté, vous pouvez également utiliser la syntaxe @. Personnellement, je préfère la séparation plus claire entre le numéro de révision et l'URL.

Comme indiqué dans l'aide, vous pouvez également remplacer un numéro de révision par certains mots :

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

Copierait la "révision juste avant COMMITTED".

0 votes

De même, dans l'exemple ci-dessus, si la révision 123 n'a pas eu lieu en dessous trunk alors le copy ...trunk@123 ... peut échouer avec Path ...trunk@123 does not exist in revision 768 (où 768 est le dernier repo), alors que -r 123 fera ce qu'il faut. Observé avec les anciens clients SVN, peut ou non être encore le cas avec la 1.6.

4 votes

L'argument -rREV ne fonctionne pas toujours. Parfois, vous avez besoin de @REV. Voir stackoverflow.com/questions/6591938/

1 votes

-r fonctionne avec svn, version 1.7.13 (r1516569) sur Mac OS X via Homebrew.

37voto

Dan McGrath Points 9839
$ svn copy http://svn.example.com/repos/calc/trunk@192 \
   http://svn.example.com/repos/calc/branches/my-calc-branch \
   -m "Creating a private branch of /calc/trunk."

Où 192 est la révision que vous spécifiez

Vous pouvez trouver ces informations sur le site Livre SVN et plus particulièrement ici sur la page concernant la copie svn

20voto

eqbridges Points 2143

Ajouter la révision en utilisant le caractère "@" :

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

Ou, utilisez l'argument de ligne de commande -r [--revision].

0 votes

Merci pour cela. Je n'arrivais pas à savoir si les crochets de la page de manuel étaient nécessaires. J'aurais dû comprendre qu'ils utilisaient EBNF.

0voto

ShivaKumar Points 31

Essayez celui ci-dessous :

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

Pas de barre oblique "\" entre les URLs svn.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X