Paramétrer le SVN & # 8220; exécuter & # 8221; bit dans un référentiel Subversion en utilisant TortoiseSVN ou SVN en ligne de commande

StackOverflow https://stackoverflow.com/questions/103395

Question

J'ai une application open source hébergée sur code.google.com. C'est multi-plateforme (Linux / Windows / Mac). J'ai initialement téléchargé le code à partir d'une machine WinXP à l'aide de TortoiseSVN et il semble qu'aucun des fichiers "Configurer" ne soit "Configurer". Les fichiers de commandes utilisés pour la construction de linux ont leur "& exécuter; exécuter " bits mis.

Quel serait le moyen le plus simple de les configurer pour les fichiers qui en ont besoin? J'imagine que l'utilisation de TortoiseSVN serait plus facile, mais si cela ne peut pas être utilisé, je pourrais aussi utiliser la ligne de commande SVN sur ma machine Linux.

Était-ce utile?

La solution

Avec tortoise SVN, c’est très simple: vous pouvez sélectionner plusieurs fichiers (il peut s’agir de résultats de recherche, ils ne doivent donc pas obligatoirement figurer dans le même répertoire), sélectionnez "propriétés". Dans le menu TortoiseSVN, ajoutez la propriété nécessaire (il existe une liste déroulante des propriétés les plus utilisées, dans ce cas "svn: executable") et définissez la valeur (dans ce cas, "*"). Si vous validez les fichiers modifiés et que vous les extrayez sous linux, le bit exécutable sera défini.

Si vous souhaitez définir plusieurs propriétés à la fois, il peut s'avérer plus sûr (en cas d'erreurs) de définir d'abord correctement les propriétés d'un fichier, de les exporter dans un fichier, de sélectionner tous les fichiers nécessaires, de sélectionner " ; propriétés " menu et importer les propriétés précédemment enregistrées.

Autres conseils

Voici comment procéder en ligne de commande:

for file in `find . -name configure`; do
  svn ps svn:executable yes ${file}
done

Ou pour un seul fichier ( configure est le nom du fichier ici):

svn ps svn:executable yes configure

Sous Unix, utilisez {} pour répondre à l'ensemble de résultats: Quelqu'un sait-il pourquoi cette propriété nécessite "Oui" et "Oui"? comme argument valable? J'ai trouvé un autre exemple avec '' au lieu de oui, ça marche aussi ...

find . -type f -name "*.bat" -exec svn propset svn:executable yes "${}" \;

Bien sûr, il en va de même pour les fichiers .exe, etc.

Méthode de restauration des autorisations des exécutables perdues lors de l'importation svn:

copiez les autorisations de votre source d'origine que vous avez utilisées lors de l'importation svn (répertoire actuel vers version1):

find . -type f | xargs -I {} chmod --reference {} ../version1/{}

puis définissez svn: executable pour tous les exécutables à l'aide du script de shell suivant:

for file in `find . -executable -type f`; do
  svn ps svn:executable yes ${file}
done
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top