52 votes

Comment définir svn:ignore avec plusieurs valeurs?

Disons que je veux définir la propriété svn:ignore pour le répertoire dir1 avec des valeurs multiples, file1, file2 et file3. Comment puis-je le faire via la ligne de commande, sans utiliser un éditeur de texte (pour définir la valeur de la propriété) ?

57voto

gertas Points 7113

Tapez exactement comme ici avec des sauts de ligne :

svn propset svn:ignore "file1
file2
file3" dir1

Si vous voulez passer une liste à partir d'une autre commande, essayez xargs. Malheureusement, la commande svn ne permet pas de lire à partir de stdin avec -F -.

1 votes

Merci. Je suppose que vous vouliez dire "propset" (et non "propget")

3 votes

C'était nul ou pas, c'était quelque chose de nouveau et rafraîchissant par rapport à CVS à l'époque. Maintenant, cela peut sembler dépassé par rapport à git, hg, bzr, etc., mais fonctionne toujours bien dans de nombreux projets.

22voto

Jan.J Points 1238

Une solution en une seule ligne :

svn propset svn:ignore "fichier1"$'\n'"fichier2"$'\n'"fichier3" dossier1

1 votes

Cela a bien fonctionné pour moi en présence du caractère de substitution ^ utilisé pour spécifier la racine du dépôt svn dans la propriété svn:externals. La solution en plusieurs lignes ne fonctionnait pas car le shell essayait d'interpréter le ^

0 votes

Cela fonctionne bien, mais j'aimerais savoir pourquoi. Que fait le caractère $ ici? Il est normalement utilisé pour démarrer une variable, n'est-ce pas? Notez également que les guillemets simples autour de \n sont nécessaires et doivent être simples, tandis que les guillemets doubles autour des noms de fichiers ne sont nécessaires que s'ils contiennent des caractères spéciaux comme des espaces.

1 votes

19voto

SMR Points 1816

Ajouter plusieurs entrées est beaucoup plus facile. Utilisez la commande suivante:

svn propedit svn:ignore .

Cela ouvrira un éditeur de texte. Maintenant vous pouvez ajouter plusieurs entrées facilement.

4 votes

Seulement si vous avez configuré un éditeur svn, que vous pouvez faire via export SVN_EDITOR=vi

0 votes

...ou simplement $EDITOR

15voto

chrisdowney Points 813

Utilisation :

cat > ignorelist << END
file1
file2
file3
END

svn propset svn:ignore -F ignorelist dir1

Ou sans fichier externe, en supposant que vous êtes sur Linux ou un système avec /dev/fd:

svn propset svn:ignore -F /dev/fd/0 dir1 << END
file1
file2
file3
END

0 votes

Merci, c'est clair. Mais comment définir la valeur de propriété sans utiliser de fichier externe?

0 votes

En ce qui concerne /dev/fd : À quoi cela se réfère-t-il ? Des disques souples ? /proc/PID/fd/ ? Ou autre chose ?

1 votes

/dev/fd/0 est une référence à l'entrée standard - elle peut être utilisée dans des situations comme ici où une commande veut un nom de fichier et les données d'entrée ne sont pas stockées dans un fichier

1voto

b_levitt Points 1218

En PowerShell:

$ignorer = "*.dll`n*.xml"
svn propset svn:global-ignores $ignorer .

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