web-dev-qa-db-fra.com

Comment obtenir une liste de tous les fichiers non versionnés de SVN?

Parfois, vous développez et vous décidez de vous engager, oubliant que vous avez créé quelques fichiers sur votre projet. Puis, quelques jours plus tard, votre ami sort votre version de Subversion et se plaint que certains fichiers semblent manquants. Vous vous rendez compte, ah merde, j'ai oublié d'ajouter ces fichiers!

Comment puis-je obtenir une liste des fichiers qui ne sont pas sous contrôle de version de Subversion, donc je suis sûr que j'ai tout ajouté au référentiel?

78
Doug T.

Utilisez le svn status commande:

svn status | grep ^?

Les fichiers qui ne sont pas versionnés sont indiqués par un? au début de la ligne.

Si vous constatez que vous avez toujours des fichiers spécifiques qui ne doivent pas être ajoutés au référentiel (par exemple, des binaires générés), vous devez configurer le svn:ignore propriété sur le répertoire conteneur afin que ces fichiers ne s'affichent pas lors de l'utilisation de svn status.

104
Greg Hewgill

Si certains fichiers ont eu ignore ajoutés à leur état, ils n'apparaîtront pas dans svn status. Tu auras besoin:

svn status --no-ignore
43
bleater

Si vous utilisez Windows, vous pouvez faire quelque chose de similaire à la réponse de Greg Hewgill en utilisant PowerShell.

(svn stat) -match '^\?'

Cela pourrait être étendu assez facilement pour trouver tous les fichiers non versionnés et ignorés et les supprimer.

(svn stat "--no-ignore") -match '^[I?]' -replace '^.\s+','' | rm

J'espère que cela est utile à quelqu'un!

15
Damian Powell

Ou à partir de la ligne de commande Windows:

svn stat | find "?"
11
crig

Vous pouvez utiliser cette commande pour répertorier tous les chemins d'accès aux fichiers non versionnés:

svn status | awk '/^?/ {print $2}'

La première partie fera un svn status, puis il redirigera la sortie vers AWK qui fera un simple filtre "le premier caractère devrait être '?'" puis il affichera le deuxième paramètre msgstr "qui est le chemin du fichier".

svn status n'imprimera toujours pas les fichiers ignorés. Vous pouvez ajouter un fichier ou un chemin d'accès en ajoutant ce chemin d'accès à l'aide

svn propset svn:ignore "PATH OR PATERN"
1
user2710797