Détermination des dossiers à partir de la ligne de commande

1

J'ai un dossier qui contient un ensemble de dossiers qui sont eux-mêmes la racine de différents projets. Certains de ces projets sont versionnés sous svn, d'autres pas. Je cherche un one-line que je peux taper sur la ligne de commande pour me donner une liste de ces projets qui ne sont pas versionnés… des idées?

Joe
la source

Réponses:

2

J'utilise 'svn info' pour vérifier si un sous-répertoire est sous contrôle de version. Si le répertoire testé n'est pas une copie de travail, 'svn info' retournera avec une erreur.
Vous pouvez rediriger la sortie pour masquer la sortie de 'svn info'.

Je vais passer à quelque chose comme ce qui suit pour les répertoires itératifs et si 'svn info' revient avec une erreur, son nom apparaît

for D in */; do svn info ${D} &>/dev/null; if [  $? -ne 0 ]; then echo ${D}; fi done

Je ne sais pas si vous pouvez appeler ça un one-line mais ça fera le travail.
Notez également que cela n'inclut pas les répertoires cachés.

amotzg
la source
Belle solution, mais ne serait-il pas un peu plus rapide de simplement vérifier s'il y a un .svn sous-répertoire à chaque endroit?
Lèse majesté
Travaille pour moi :)
Joe
@ Lèsemajesté Ce sera le cas, mais le '.svn' peut être une vieille corbeille ou autre chose et 'svn info' valide également la copie de travail dans une certaine mesure.
amotzg