J'ai supprimé de nombreux fichiers de ma copie locale qui étaient présents dans différents sous-répertoires du répertoire principal. Je souhaite supprimer tous les fichiers supprimés localement de mon référentiel SVN également. P>
Si je vérifie le statut SVN de mon répertoire principal à l'aide de existe une manière ou une commande ou un script pour supprimer tous les fichiers supprimés localement de mon répertoire principal et de mon sous-répertoires de mon référentiel SVN. Je pense que nous pouvons faire boucle à travers tous les fichiers de chaque dossier et supprimer les fichiers supprimés localement de SVN en cochant le fichier SVN correspondant ('!'), Mais je ne sais pas comment convertir mon idée à un script. p>
Quelqu'un peut-il m'aider s'il vous plaît à terminer cette tâche? Merci d'avance ... p>
siva p> svn st main_dir code> alors tous les fichiers supprimés s'affichent avec '!' symbole qui signifie que les fichiers correspondants sont manquants. Mais ces fichiers ne sont pas supprimés de mon référentiel SVN, même si j'engage mes modifications à l'aide de
svn ci main_dir code>. P>
5 Réponses :
Vous auriez dû utiliser voir SVN Supprimer pour plus de détails. p>
Je vous suggère SVN Supprimer chemin code> pour supprimer ces fichiers. De cette façon, ils sont supprimés des deux, votre système de fichiers et la copie de travail. P>
SVN Update code> pour récupérer les fichiers du référentiel distant et supprimez-les à l'aide de
SVN Supprimer code>. p>
Je n'ai pas supprimé ces fichiers manuellement, en réalité lors de la mise à niveau de l'une de mes bibliothèques de ma tierce partie, certains des anciens fichiers ont été supprimés de l'ancienne version de cette bibliothèque. J'ai donc juste besoin de supprimer ces fichiers de mon référentiel SVN aussi.
Cela vous obligerait à supprimer des fichiers uniquement à l'aide de SVN Supprimer
car je en $ (svn st | grep \! | awk '{imprimer $ 2}'); SVN Supprimer $ i; terminé
code> p>
Merci beaucoup Gadolin, cela fonctionne parfaitement. Je suis très nouveau à ce script, pouvez-vous s'il vous plaît expliquer un peu cette déclaration afin que je puisse comprendre correctement.
1. Le GREP ne prend que des lignes de SVN Statut qui commence avec!, De sorte que ceux-ci sont intéressés, alors que SVN Statut Sortie a deux colonnes, AWK prend la deuxième colonne (où le nom du fichier est), puis chaque fichier est pris en entrée pour la boucle comme 'i'. En boucle intérieure, j'appelle svn Supprimer $ i, où $ i est substitué par fichier.
Merci pour votre explication Gadolin.
Échoue s'il y a des espaces n'importe où dans le chemin de fichier.
for i in $(svn st | grep \! | awk '{print $2}'); do svn delete $i'@'; done For files with @2x in them.
vous êtes mon sauveur! : D Son tellement difficile à rechercher dans Google ou donc à "Svn Supprimer @ 2x" et à obtenir la bonne réponse! Merci encore!
J'ai trouvé Xargs plus facile que la boucle pour la boucle:
svn stat | grep \\! | awk '{print $2}' | xargs svn remove
fonctionne également avec l'espace blanc dans les noms de fichier:
svn st | grep ! | sed 's/!\s*//' | xargs -I{} svn remove '{}'
Consultez ma réponse sur une question que c'est essentiellement une dupe d'ici: Stackoverflow.com/questions/1308136/...