2014-07-15 1 views
1

Mon référentiel Subversion comporte plusieurs éléments externes, dont un avec lequel je travaillais. J'ai accidentellement supprimé plusieurs fichiers que je avais besoin, donc je suis allé les revenir:Rétablissement des modifications apportées à l'élément externe dans Subversion

$ svn revert -R ~/Code/project/external1 
Skipped '~/Code/project/external1' 

Je pensais que c'était bizarre, alors j'ai essayé de supprimer tout le répertoire:

$ rm ~/Code/project/external1 -r 
$ svn revert -R ~/Code/project/external1 
Skipped '~/Code/project/external1' 

Il semble Subversion ne vouloir descendre dans l'extérieur. Comment est-ce que je force Subversion à retourner le répertoire, à la fois dans le premier cas idéal et dans mon deuxième cas imprudemment considéré?

Répondre

1

Chaque répertoire externe est essentiellement sa propre copie de travail autonome. Il semble que SVN n'aime pas faire des opérations à partir de votre copie de travail réelle sur la copie de travail externe. Il suffit donc de tirer parti du mécanisme sous-jacent et utiliser une copie de travail de l'extérieur:

cd ~/Code/project/external1 
svn revert -R . 

Ou directement à partir du dossier en cours (idéal pour les scripts)

svn revert -R . 
svn revert -R ./External_a 
svn revert -R ./External_b 
svn revert -R ./External_c/sub_external_i 
svn revert -R ./External_c/sub_external_j 
0

actualisateurs le répertoire de base où la propriété est externe a déclaré:

svn update ~/Code/project 

Subversion remarquerez que l'extérieur est obsolète/manquante et tout re-instancier.

+1

Pour clarifier les choses, c'est après le dossier externe a été supprimé comme dans votre deuxième cas. – Ben

Questions connexes