Il existe maintenant un fichier dans le dépôt CVS d'un projet, qui doit être déplacé vers un autre projet utilisant SVN. Et je veux garder l'histoire des commits.Puis-je migrer un seul fichier de CVS vers SVN?
Existe-t-il un moyen de le faire?
Il existe maintenant un fichier dans le dépôt CVS d'un projet, qui doit être déplacé vers un autre projet utilisant SVN. Et je veux garder l'histoire des commits.Puis-je migrer un seul fichier de CVS vers SVN?
Existe-t-il un moyen de le faire?
Si cela doit être un nouveau dépôt Subversion, alors il est trivial: il suffit de créer un faux référentiel CVS contenant le fichier unique (comme décrit ci-dessous) et de le convertir en utilisant cvs2svn. Si le référentiel Subversion existe déjà et que le nouveau fichier doit être le début d'un nouveau sous-projet dans ce référentiel, vous pouvez effectuer une conversion vers un fichier dump Subversion (en utilisant l'option --dumpfile de cvs2svn), puis le charger dans le référentiel existant à l'aide
$ svnadmin load --parent-dir=/newproject /path/to/svnrepo <dumpfile.out
Cela va créer un nouveau sous-projet dans Subversion y compris les répertoires/newproject/tronc,/newproject/branches et/newproject/tags et (par exemple) la version du tronc de votre fichier sera situé à/newproject/trunk/myfile.
Veuillez noter que l'historique du nouveau fichier sera migré car une seule série de Subversion valide en haut des validations qui se trouvent déjà dans votre référentiel Subversion. Ainsi, les commits Subversion ne seront probablement pas dans l'ordre chronologique, ce qui interrompt la recherche par date dans le dépôt Subversion.
De toute façon, vous devrez commencer par la création d'un référentiel CVS faux contenant le fichier unique:
$ CVSREPO=$HOME/fakecvs
$ mkdir $CVSREPO
$ mkdir $CVSREPO/CVSROOT # This directory is needed by cvs2svn but can be empty
$ mkdir $CVSREPO/proj
$ cp /path/to/myfile,v $CVSREPO/proj/
convertir ensuite du chemin $ CVSREPO/proj utilisant cvs2svn:
$ cvs2svn [options...] $CVSREPO/proj
C'était un message très utile. Merci beaucoup!! Mais, j'ai besoin de migrer un fichier vers un projet SVN déjà existant. Des suggestions sur comment puis-je faire cela (je sais que je ne peux pas garder les dates correctes de toute façon)? – Jagmal
Ce n'est pas si facile, surtout si le fichier a des branches et/ou des tags. Je suggère que vous le convertissiez comme un projet séparé comme décrit ci-dessus, puis après l'importation (dans la révision HEAD) "svn mv" la version actuelle du fichier de son propre répertoire de projet à l'endroit où il devrait être situé dans le principal projet. (Cela conservera l'historique du fichier.) S'il y a plusieurs branches/tags, alors vous devrez "svn mv" et/ou "svn cp" chaque version de branche/tag du fichier vers la branche/étiquette correspondante de la main projet. – mhagger
-vous veux garder l'histoire? – Bruno
Pourriez-vous simplement vérifier le référentiel CVS et le référentiel SVN, puis copier le fichier dans le référentiel SVN et l'enregistrer? Peut-être que je ne comprends pas la question. –
Comme Bruno a dit que je veux garder l'histoire. Je pensais que c'était évident, mais maintenant je vais mettre à jour la question explicitement. – Jagmal