Je cherche un tutoriel succinct et bien écrit sur l'utilisation de svn: externals.
Je sais déjà comment les utiliser de manière basique moi-même, mais je veux un bon article auquel je peux me lier lorsque je réponds à des questions comme celle-ci qui reviennent récemment:
Que faire avec plusieurs projets selon la même source?
Je le ferais moi-même, mais je ne les utilise pas assez souvent pour vouloir sortir mon cou et écrire un tutoriel dessus. Google était étonnamment inutile sur ce sujet.
Voici quelques sections à ce sujet dans le manuel svnbook/TortoiseSVN:
This est la page svnbook sur svn: externals. C'est la ressource la plus utile sur le sujet.
Celui-ci explique quatre façons d'inclure des sous-projets dans le flux de travail (et dans le processus en manque un cinquième: les liens symboliques).
Et ce dernier est une page spécifique à TortoiseSVN sur la façon d'importer des éléments dans un référentiel (pas directement lié à svn: externals).
Dans le cas où cela ne ressort pas clairement des liens fournis ci-dessus, la façon dont vous définissez le svn:externals
propriété qui est liée à une révision particulière (épinglage), la voici:
svn propset svn:externals "plugins -r12345 https://svn.example.com/common/plugins" extras
Cela créera un sous-répertoire plugins
sous le répertoire extras
et le liera à la révision 12345
de l'URL SVN externe https://svn.example.com/common/plugins
.
Il y a un article sur Red Bean qui suggère d'utiliser propedit
puisque 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.
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 indiqué ci-dessus, nous voulons copier 2 fichiers et 1 répertoire dans repo2
Étape 1
répertoire:/home/jack/repo2/proj /
cd /home/jack
Étape 2
svn propset svn:externals "../repo1/proj/base/client proj/base/client" repo2
quelque chose comme: ln repo1/proj/base/client repo2/proj/base/client
Étape 3
export SVN_EDITOR=vim
Étape 4
svn propedit svn:externals repo2
vim montre:
../repo1/proj/base/client proj/base/client
Étape 5: ajoutez 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