46 votes

Est-il possible de lier les fichiers d'un dépôt SVN de sorte qu'un fichier soit en fait une référence à un fichier d'un autre dépôt ?

Je peux voir quelques difficultés potentielles avec ce concept mais l'idée est la suivante :

Je modifie un fichier dans le référentiel A et je fais un commit, le référentiel B a un fichier qui est un lien vers un fichier dans le référentiel A, je clique sur mettre à jour le fichier dans ma copie de travail pour le référentiel B, et je reçois le fichier mis à jour du référentiel A.

47voto

DigitalRoss Points 80400

Oui, pour les répertoires en tout cas

Voir cette section sur les externes de svn . El svn:externals est définie sur un répertoire versionné ; sa valeur est généralement un autre répertoire versionné dans un référentiel (éventuellement le même) de votre organisation. Ils agissent en fin de compte comme des liens symboliques.

Mise à jour : Bon appel également par basszero mais notez que l'auteur de la question ne dispose certainement pas d'un dépôt svn 1.6, il ne peut donc pas le faire avec des fichiers.

0 votes

Cela devrait fonctionner pour tous les fichiers de ce répertoire. J'utilise quelque chose comme ça ici.

1 votes

Subversion 1.6 supporte également les définitions d'externes pour les fichiers.

1 votes

@basszero : svn ne supporte que les externalisations de fichiers texte, les fichiers binaires ne peuvent pas être "externalisés".

25voto

basszero Points 14539

Si vous avez la chance d'utiliser subversion 1.6 vous pouvez avoir liens externes pour les deux répertoires Fiches ET

3 votes

"lucky enoug", lol comme si seuls les enfants riches pouvaient se permettre de mettre la main sur ce petit bijou d'open sourcing gratuit.

6 votes

S'il n'héberge pas lui-même le dépôt, il n'a probablement pas le contrôle de la version présente sur le serveur. Libre ne signifie pas toujours accessible :)

1 votes

Svn1.6 ne supporte que les fichiers externes aux fichiers textes.

11voto

Hovo Points 158

Regardez ce post
Cela m'a aidé
comment définir correctement la propriété svn svn externals dans la ligne de commande svn

Pour ceux qui ne veulent pas suivre le lien, voici un bref aperçu.

svn propset svn:externals 'akismet http://plugins.svn.wordpress.org/akismet/trunk' .
  • akismet - le nom du répertoire ou du fichier que vous voulez donner à votre lien
  • http://plugins.svn.wordpress.org/akismet/trunk - Le lien vers le dépôt svn vers lequel vous souhaitez créer un lien.
  • . - Le répertoire actuel, donc assurez-vous que vous êtes dans le répertoire où vous voulez que le lien réside.

Après avoir exécuté l'opération ci-dessus, faites un

svn commit

y

svn update

2voto

Scrappydog Points 2403

C'est facile à faire avec des liens "externes" dans votre dépôt de subversion.

Personnellement, je trouve cela très utile pour incorporer des bibliothèques open source dans mon code (Codeplex, Google Code, etc...).

Recherchez "svn:externals" pour trouver de la documentation sur les détails.

0voto

kalia Points 1

Voici une solution qui permettra de synchroniser tous les fichiers. Utilisez ln pour créer un lien dur et ensuite copier cela dans tous les dossiers. La méthode est décrite ci-dessous ( Linux ).

  1. $ ln source_file.txt ~/desired_directory/first_copy.txt Cela créera un lien dur du fichier source.txt et mettra une copie dans le répertoire souhaité.
  2. Répétez le même processus pour produire plusieurs copies du même fichier (en fait, il s'agit simplement de lier le fichier) et placez-le dans le répertoire de votre choix.
  3. Mettez à jour le fichier source_file.txt et cela mettra à jour tous les autres fichiers liés également.

A la vôtre.

Pour Windows, on peut utiliser mklink pour lier des fichiers.

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