J'utilise une généralisation de la ligne de commande que vous exécutez, appelée svnapply.sh
. Je ne l'ai pas écrit, mais je ne me souviens pas où je l'ai trouvé. Si tout va bien, l'auteur original me pardonnera de reposter ici:
#!/bin/bash
#
# Applies arbitrary commands to any svn status. e.g.
#
# Delete all non-svn files (escape the ? from the shell):
# svnapply \? rm
#
# List all conflicted files:
# svnapply C ls -l
APPLY=$1
shift
svn st | egrep "^\\${APPLY}[ ]+" | \
sed -e "s|^\\${APPLY}[ ]*||" | \
sed -e "s|\\\\|/|g" | \
xargs -i "[email protected]" '{}'
par les commentaires, le script permet d'exécuter des commandes arbitraires contre tous les fichiers avec le même statut.
Mise à jour:
Il ne serait pas trop difficile d'écrire un script qui prend un chemin de fichier comme argument et invite l'utilisateur à ajouter/supprimer et fait alors la chose appropriée pour ce fichier. Enchaîner cela avec le script ci-dessus vous obtiendrait ce que vous voulez.
Notez que vos one liners se cassent pour les fichiers non suivis avec des espaces dans leur nom – freespace
Utilisez 'svn st | grep '^?' | sed 's/^ [?] */"/ '| sed' s/$ /"/'| xargs svn add' à la place qui ne souffre pas du problème d'espace – freespace