2009-08-27 6 views
7

Je sais comment revenir à une révision spécifique d'un dossier en suivant ces instructions:Comment récupérer un dossier accidentellement supprimé dans un dépôt svn

http://aralbalkan.com/1381

Cependant, j'ai supprimé le dossier entier et que vous souhaitez obtenir ce dossier sans revenir sur le reste du dépôt.

J'ai essayé de recréer le dossier, puis de fusionner les modifications, mais svn connaît mon astuce et réalise qu'il s'agit d'un nouveau dossier.

Comment est-ce que je devrais faire ceci?

Répondre

21

Le plus simple est probablement svn copie l'arbre que vous voulez, de la révision où il existait dernier:

svn copy [email protected] dest 

Voir la Subversion Book pour plus de détails.

+0

Est-ce que cela copie également l'historique des révisions? Je veux dire que je peux parcourir l'historique des fichiers dans le dossier copié? –

+0

Oui - 'svn copy' copie avec l'historique. – Avi

+0

astuce cool! Merci. –

0

Vous pouvez extraire une nouvelle copie de travail, puis faire une exportation du dossier qui vous intéresse. Une fois que vous avez exporté le dossier, il n'y aura pas de métadonnées de subversion. Vous pouvez ensuite placer le dossier dans la copie de travail à partir de laquelle il a été supprimé.

Bonne chance.

0

Si vous avez commis les changements après recréer le dossier, il est possible que vous avez le même problème que moi:

J'ai perdu mon histoire pour les fichiers. Ensuite, je svn deleted le dossier à nouveau, et lorsque vous faites un

svn cp ^/path/to/[email protected] /path/to/directory 

J'ai reçu cette erreur:

svn: path "htttp://.../path/to/directory" not found for revision "revisionNumber". 

Dans ce cas, vous pouvez utiliser un dossier auxiliaire (~/tmp /) pour faire une

cd ~/tmp; svn co -r revisionNumber /path/to/directory 

Il créera le dossier ~/tmp/directory/avec tous les fichiers qu'il contient. supposons que l'endroit où vous répertoire supprimé était/emplacement/de/ma/trunk/chemin/vers/

et délivre alors un

cd location/of/my/trunk/path/; svn copy ~/tmp/directory/ to/ 

de ce chemin vers le chemin, il devrait être dans votre arbre .

Questions connexes