2009-03-19 7 views
72

Je suis à la recherche d'un tutoriel succinct et bien écrit sur l'utilisation de svn: externals.Comment débuter avec svn: externals?

je sais déjà comment les utiliser en moi-même méthode de base, mais je veux un bon article que je peux relier quand répondre à des questions comme celle-ci qui se présentent récemment:

What to do with multiple projects depending on the same source?

Je Je le fais moi-même, mais je ne m'en sers pas assez souvent pour vouloir sortir mon cou et écrire un tutoriel dessus. Google était étonnamment inutile avec ce sujet.

Répondre

40

Voici quelques sections à ce sujet dans le svnbook/manuel TortoiseSVN:

This est la page svnbook sur svn: externals. C'est la ressource la plus utile sur le sujet.

This one explique quatre façons d'inclure des sous-projets dans le flux de travail (et dans le processus manque un cinquième: liens symboliques).

Et this last one est une page spécifique à TortoiseSVN sur la façon d'importer des données dans un référentiel (pas directement lié à svn: externals).

16

Dans le cas où il ne ressort pas des liens fournis ci-dessus, la façon dont vous définissez la propriété svn:externals qui est liée à une révision particulière (épinglage), voici:

svn propset svn:externals "plugins -r12345 https://svn.example.com/common/plugins" extras 

Ce sera fera un sous-répertoire plugins sous le répertoire extras et le lier à la révision 12345 de l'URL SVN externe https://svn.example.com/common/plugins.

Il existe un article Red Bean qui suggère d'utiliser propedit car le svn:externals peut être une valeur multiligne. L'exemple ci-dessus serait modifié comme suit pour utiliser propedit.

svn propedit svn:externals extras 

Vous devez ensuite ajouter une ligne pour chaque lien externe en suivant le même format indiqué ci-dessus pour la valeur.

0
root/repo1/proj/base/common/log.c 
root/repo1/proj/base/common/log.h 
root/repo1/proj/base/client 

root/repo2/proj/test/base 

Comme le montrent ci-dessus, nous voulons copier 2 fichiers et 1 répertoire pour repo2

Etape 1

répertoire:/home/jack/repo2/proj/

cd /home/jack 

Étape2

svn propset svn:externals "../repo1/proj/base/client proj/base/client" repo2 

quelque chose comme: ln repo1/proj/base/client repo2/proj/base/client

Etape 3

export SVN_EDITOR=vim 

Step4

svn propedit svn:externals repo2 

vim montre:

../repo1/proj/base/client proj/base/client

Step5: ajouter deux autres fichiers

../repo1/proj/base/client proj/base/client 
../repo1/proj/base/common/log.c proj/base/common/log.c 
../repo1/proj/base/common/log.h proj/base/common/log.h 
Questions connexes