Comment créer une branche dans SVN?
Comment créer une branche dans SVN?
Réponses:
Le branchement dans Subversion est facilité par une fonction de copie très très légère et efficace.
La ramification et le marquage sont effectivement les mêmes. Copiez simplement un dossier entier du référentiel vers un autre endroit du référentiel à l'aide de la svn copy
commande.
Fondamentalement, cela signifie que c'est par convention ce que signifie la copie d'un dossier - que ce soit une sauvegarde, une balise, une branche ou autre. Selon la façon dont vous voulez penser aux choses (normalement en fonction de l'outil SCM que vous avez utilisé dans le passé), vous devez configurer une structure de dossiers dans votre référentiel pour prendre en charge votre style.
Styles communs doivent avoir un tas de dossiers en haut de votre référentiel appelé tags
, branches
, trunk
, etc. - qui vous permet de copier l' ensemble de votre trunk
(ou sous-ensembles) dans les tags
et / ou branches
dossiers. Si vous avez plusieurs projets, vous souhaiterez peut-être reproduire ce type de structure sous chaque projet:
Cela peut prendre un certain temps pour s'habituer au concept - mais cela fonctionne - assurez-vous simplement que vous (et votre équipe) êtes clair sur les conventions que vous allez utiliser. C'est également une bonne idée d'avoir une bonne convention de dénomination - quelque chose qui vous indique pourquoi la branche / balise a été créée et si elle est toujours appropriée - envisagez des moyens d'archiver les branches obsolètes.
svn cp
utilise en fait des copies bon marché, il ne copie pas les fichiers réels lors de la ramification. Voir svnbook.red-bean.com/en/1.1/ch04s02.html
Créez une nouvelle branche à l'aide de la svn copy
commande comme suit:
$ svn copy svn+ssh://host.example.com/repos/project/trunk \
svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
-m "Creating a branch of project"
svn switch svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH .
(si vous voulez basculer le paiement en cours vers une nouvelle branche) ou svn checkout svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH
(si vous voulez avoir une nouvelle branche dans un répertoire séparé) pour commencer à travailler sur la branche nouvellement créée.
--parents
option avecsvn copy
!
-m
option, il dit comme svn: E155010: Path '/home/constantine/someDirectory/svn+ssh:https:/myhost.com/svn/dir1/dir2/trunk/dir3/dir4/dir5' does not exist
. Avec -m
ça dit svn: E205009: Local, non-commit operations do not take a log message or revision properties
. (J'ai remplacé les adresses, mais elles existent, à l'exception de ofc, du nouveau répertoire de branche et de l'ensemble du chemin + URL que SVN a fusionné pour une raison quelconque dans l'erreur) .
svn cp /trunk/ /branch/NEW_Branch
Si vous avez des modifications locales dans le tronc, utilisez-les Rsync
pour synchroniser les modifications
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
rsync
de cette façon. svn cp
copiera également toutes les modifications locales.
Supposons que vous vouliez créer une branche à partir d'un nom de tronc (comme "TEST") puis utilisez:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
Normalement, vous le copiez dans svn + ssh: //host.example.com/repos/project/branches/mybranch afin de pouvoir conserver plusieurs branches dans le référentiel, mais votre syntaxe est valide.
Voici quelques conseils sur la façon de configurer la disposition de votre référentiel .
Astuce pour les nouveaux utilisateurs SVN; cela peut aider un peu à obtenir rapidement les URL correctes.
Exécutez svn info
pour afficher des informations utiles sur la branche en cours d'extraction.
L'URL devrait (si vous exécutez svn dans le dossier racine) vous donner l'URL à partir de laquelle vous devez copier.
Pour passer également à la branche nouvellement créée, utilisez la svn switch
commande:
svn switch http://my.repo.url/myrepo/branches/newBranchName
Si vous prévoyez même de fusionner votre succursale, je vous suggère fortement de regarder ceci:
J'entends que Subversion 1.5 construit plus de suivi de fusion, je n'ai aucune expérience avec cela. Mon projet est sur 1.4.x et svnmerge.py est un épargnant de vie!
Voici les étapes pour créer une branche à partir du tronc en utilisant TortoiseSVN dans la machine Windows. Cela nécessite évidemment l'installation du client TortoiseSVN.