2010-07-13 7 views
0

Cette question vous vient de quelqu'un qui a déjà été brûlé par SVN et j'en ai peur maintenant. Donc j'ai un petit problème parce que j'étais stupide quand je travaillais sur mon repo SVN. Je développais un projet, disons contenant un fichier, que je viens de publier en tant que première version mineure. Donc, mon repo svn ressemblait à ceci:Déplacer la copie de travail SVN dans un nouveau répertoire et marquer l'enregistrement en cours?

project/ 
--> main.py (v1) 

avis, que je l'ai fait pas créer les trunk habituels, branch et tags dossiers que je aurais dû. Maintenant, j'ai besoin de, mais le problème est que j'ai depuis édité le fichier! Est-il possible que je peux passer de ceci:

Hard drive: 
project/ 
--> main.py (v2) 

SVN repo: 
project/ 
--> main.py (v1) 

à ceci:

Hard drive and SVN repo: 
project/ 
--> trunk/ 
    --> main.py (v2) 
--> tags/ 
    --> v1/ 
     --> main.py (v1) 
--> branch/ 

Merci pour tout/toute l'aide!

PS S'il vous plaît noter que "Switch to git!" n'est pas une réponse acceptable :)

Répondre

2

Vous pouvez utiliser les commandes svnmove et copy. Ils peuvent fonctionner avec des URL, ce qui signifie que vous pouvez effectuer des modifications côté serveur.

Vous pouvez copier ou déplacer main.py (v1) aux balises/v1/en utilisant URL-> méthode d'URL. Ensuite, vous pouvez copier la méthode main.py (v2) vers la ligne de réseau/en utilisant la méthode WC-> URL.

svn copy --parents main.py http://svn/project/trunk/main.py 

Puisque vous n'avez pas le tronc des répertoires et des balises, vous pouvez utiliser le paramètre --parents, il va créer les répertoires manquants dans le chemin.

Voir svn help copy et svn help move pour plus d'informations sur ces commandes

P.S. Juste au cas où faire une copie de sauvegarde de votre copie de travail.

Questions connexes