Les fichiers de liens symboliques survivent SVN?

Disons que je crée un fichier de lien symbolique à l'intérieur d'un chemin géré par SVN, engage le chemin vers le SVN et, plus tard, caisse le chemin.

  1. Le fichier de lien symbolique survivra-t-il?

  2. Si le fichier de lien symbolique est constitué d'un chemin relatif, cela fonctionnera-t-il "partout", une caisse est-elle effectuée?

  3. Y a-t-il des pièges?

En général, oui .

Cependant, certains clients ne fonctionnent pas correctement avec des liens symboliques. Subclipse, pour Eclipse IDE, crée des répertoires au lieu des liens symboliques.

Il est donc préférable de s'assurer que votre client le fait bien avant de se lancer dans le développement.

Dans la page des fonctionnalités de Subversion :

Les liens symboliques peuvent être versionnés.

Les utilisateurs Unix peuvent placer des liens symboliques sous contrôle de version. Les liens sont recréés dans des copies de travail Unix, mais pas dans win32 copies de travail.

  1. Oui

  2. Tant que les autorisations ne sont pas modifiées, il devrait.

  3. Ne fonctionnera pas sur les paiements de Windows.

Les liens symboliques ne survivent pas sur une machine Windows, cela peut être un problème.
Sur les machines Windows, les liens symboliques prennent la forme de fichiers espace réservé *), par exemple:

style.css :

 Lien .../www_public/styles.css

*): Ces fichiers ont svn:special propriété " svn:special " avec une valeur de " * ".

Je dois parfois exporter des éléments vers une machine Windows avant de pouvoir déplacer / transférer le projet vers son serveur de destination.

J'utilise un petit script shell qui fait un travail merveilleux pour recréer les liens symboliques réels des fichiers d'espace réservé:

 #!/bin/sh grep -lr '^link ' . | while read placeholderfile do linecount=`wc -l $placeholderfile | cut -c1` if [ $linecount -eq 0 ] ; then linkfile=`cut -c6- "$placeholderfile"` ln -sf "$linkfile" "$placeholderfile" echo -e "[\E[32;40mOK\E[37;40m] Replaced $placeholderfile with symlink" else echo -e "[\E[31;40mWARNING\E[37;40m] $placeholderfile contains newline(s)" fi tput sgr0 done 

Ce script fonctionne en supposant que tous les fichiers qui commencent avec la chaîne " link " et ne contiennent pas de nouvelles lignes sont des liens symboliques.

À partir de Windows 7, le système d'exploitation comprend des liens symboliques; Voir ici pour obtenir de la documentation. Les clients SVN réguliers sous Windows ne supportent toujours pas cela, mais svn sous cygwin le fait!