web-dev-qa-db-fra.com

svn delete fichiers supprimés

J'ai une copie de travail d'un projet SVN. Les fichiers sont supprimés de cette copie de travail par une application. Lorsque je valide la copie de travail à l'aide de la ligne de commande SVN, je souhaite supprimer ces fichiers supprimés du référentiel.

Si je valide la copie de travail en utilisant svn commit, les fichiers ne sont pas supprimés du projet (car ils n'ont pas été supprimés localement avec svn delete. Puis-je dire à SVN de supprimer (du référentiel) les fichiers manquants dans la copie de travail?

36
Dónal

utiliser un 

svn status

il listera les modifications avec la copie de travail. (Les fichiers supprimés commencent par un!)

Ensuite vous pouvez :

svn delete file_to_del1 file_to_del2 etc

et enfin commettre

Vous pouvez également écrire un petit extrait pour automatiser ceci:

svn status | grep '^!' | awk '{print $2}' | xargs svn delete

Et éventuellement ajouter un alias:

alias svn_precommit="svn status | grep '^!' | awk '{print $2}' | xargs svn delete"

Remarque: je pourrais trop compliquer le fragment de code avec une variante prenant en charge l'espace/@ dans les noms de fichier. 

Mais pourquoi voudriez-vous créer de tels fichiers sous Linux dans votre référentiel SCM? Il n'est pas recommandé de laisser un espace dans un répertoire/nom de fichier sous Linux.

Chaque extrait de code pour gérer de tels fichiers est compliqué, simplement parce que vous vouliez un "" au lieu de "_".

60
naab

Ce qui suit fonctionne lorsque vous avez reçu une pile de fichiers dans des répertoires de chemins contenant des noms de fichiers. Cela fonctionnera sous OSX, IOS et Linux

svn st | grep ^! | awk '{$1=""; print " --force \""substr($0,2)"@\"" }' | xargs svn rm
0
The CTO