web-dev-qa-db-fra.com

Comment démarrer avec svn: externals?

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.

76
Joel Coehoorn

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).

45
Ole Lynge

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.

18
EricD
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
0
KunMing Xie