2010-01-08 8 views
3

Je ne le suit dans une copie de travail svn j'avais:svn: oublier les fichiers supprimés

[email protected]# gvim Dual_On_Off_Model.h 
[email protected]# gvim Dual_On_Off_Model.cpp 
(... made the files, saved them ...) 
[email protected]# svn add Dual_On_Off_Model.* 
[email protected]# svn st 
M Multiple_On_Off_Model.h 
A Dual_On_Off_Model.h 
A Dual_On_Off_Model.cpp 
[email protected]# rm Dual_On_Off_Model.* <- Stupid on my part, but discovered 
              <- I didn't need the class 

Alors plus tard:

[email protected]# svn st 
M Multiple_On_Off_Model.h 
! Dual_On_Off_Model.h 
! Dual_On_Off_Model.cpp 
[email protected]# svn commit 
svn: Commit failed (details follow): 
svn: '/home/sheep/src/secret_project_x/trunk/superduperd/Dual_On_Off_Model.h' is 
scheduled for addition, but is missing 

Fondamentalement, je supprimé les fichiers de ma copie de travail sans utiliser svn rm, et maintenant svn est fou parce qu'il ne peut pas trouver les fichiers.

Puisque je n'ai pas besoin de Dual_On_Off_Model. * Et qu'ils sont maintenant allés sur le gros disque dur dans le ciel, est-ce que je peux utiliser un Jedi mind trick sur la copie de travail pour qu'il arrête de me crier dessus?

+0

@Manuel Aldana - J'ai essayé votre réponse modifiée, définitivement travaillé. Postez à nouveau, vous obtiendrez sélectionné comme meilleure réponse, parce qu'il ne nécessite pas de bash-fu ou de créer des fichiers. –

Répondre

5

RÉVISÉ ENTRE:

utilisation:

svn revert -R .

il revient à la révision svn vous avez comme copie locale.

+0

J'ai essayé cela. Cela ne fonctionne pas avec le scénario que j'ai ci-dessus. –

+0

Désolé, j'ai oublié: essayez avec l'option -R (j'ai également corrigé le texte de la réponse) –

+0

Cela a fonctionné pour mon scénario, mais pour les répertoires que j'avais supprimés, il n'a pas restauré le sous-répertoire .svn fichiers, assez curieusement). Cela signifie que quand j'ai couru le statut svn, il a donné un '?' à côté de ces répertoires. J'ai supprimé les répertoires en question (en utilisant rm -rf) et j'ai lancé svn up et tout est redevenu normal. – Jeff

6

Juste rajouter les fichiers (ou les fichiers vides avec ces noms) puis supprimez-les, en utilisant svn rm.

2

svn revert * échoue car * se développe dans tous les fichiers du répertoire et vous devez restaurer un fichier qui ne figure plus dans le répertoire. Essayez plutôt svn revert Dual_On_Off_Model.h Dual_On_Off_Model.cpp.

Pour rétablir absolument tout, vous pouvez utiliser un peu de bash-fu:

svn status | awk '{print $2}' | xargs svn revert 

Prenez le deuxième mot de chaque ligne de sortie de svn status (en supposant que vous avez pas d'espace dans vos noms de fichiers .. .), puis passez-les comme arguments à svn revert.

0

Je me suis inspiré par la réponse de Josh Kelley:

svn st | awk '$1 == "!" {print $2}' | xargs svn revert 

devrait fixer un arbre entier qui a ce problème.

Questions connexes