9
votes

Est-il possible de changer le nom du dir dans le référentiel de svndumpfilter?

est-il possible de renommer le répertoire dans le référentiel SVN.

ne pas créer une nouvelle révision dans laquelle ce répertoire sera renommé.

Je voudrais changer le nom de ce répertoire à partir de la première révision.

Autant que je comprenne, Svndumpfilter Utility peut être utilisé pour cela.

est-il correct?

Quelqu'un peut-il me donner petit exemple comment le faire?


0 commentaires

4 Réponses :


7
votes

Vous devriez svnadmin Dump em> votre référentiel, processus du fichier de vidage et svnadmin charge em> le fichier traité dans un repo vide. Non svndumpfilter em> nécessaire.

svnadmin create /newrepos/path
svnadmin load /newrepos/path < new.dump


5 commentaires

Ne traitez pas une structure de données complexe comme un vidage SVN avec un outil simple comme SED. Personne ne vous garantit que la chaîne ': Dir1' n'apparaît jamais ailleurs.


Dans ce cas, vous obtiendrez une erreur «Mismachatch de la somme de contrôle» lors du chargement du fichier traité. Voir Format de fichier de vidage: svn.apache.org / Repos / asf / Subversion / Trunk / Notes / ...


C'est génial. Ça marche. C'est le seul moyen simple comment se déplacer avec des dossiers dans le décharge SVN!


Malheureusement, dans mon expérience, cela va généralement pas travailler à moins que le texte de remplacement a le même nombre de caractères que le texte d'origine et vous supprimez les checksums hors du fichier de vidage. BTW, le svndumptransformer (réponse de Marco) a fonctionné pour moi sur une modification assez compliquée (noms de fichiers, commentaires et contenu de fichier tous devaient être modifiés).


Compte tenu des autres succès mentionnés ici il y a plusieurs années, je me demande si le format de fichier de vidage était tel que cette approche pouvait fonctionner, mais j'ai constaté que ce n'est généralement plus aussi facile.



6
votes

Je recommanderais certainement pas à utiliser SED, car il n'est pas au courant du format de fichier et que vous risquez de rendre facilement le fichier de vidage SVN inutilisable.

En outre, si vous souhaitez remplacer un peu plus qu'un simple chemin, vous devez également mettre à jour ou simplement supprimer les montants de contrôle SHA1 et MD5.

Modification d'une décharge SVN n'est vraiment pas aussi triviale que cela pourrait sembler au début.

J'ai eu le même problème, hier et j'ai écrit un petit programme à cette fin. Je l'ai publié ici pour que tout le monde utilise:

https://github.com/nlmarco/svndumpTransformer

C'est un logiciel libre et vous êtes invité à la modifier, si vous voulez / avez besoin de plus de fonctionnalités.

Ce programme modifie uniquement le contenu du texte (si un fichier - par exemple, une image - est marqué pour avoir l'application de type MIME «Application / Octet-Stream», elle n'est pas modifiée). Et comme il lit vraiment et comprend le format de vidage SVN, il ne modifie pas les données structurelles appartenant à la décharge SVN - Contrairement à la commande SED ci-dessus.

Pour moi, ce programme car il est actuellement bien fonctionné pour renommer un produit - provoquant tous les chemins, ainsi que des fichiers de configuration de projet (=> gradle) et quelques douzaines de classes Java à renommer.

J'espère que ce programme est utile à d'autres personnes aussi.

BTW. Je suis conscient que cette question est très ancienne, mais j'espère que ma réponse pourrait aider les autres qui rencontrent ce problème, maintenant.


1 commentaires

Merci! Cela a fonctionné pour moi sur une modification assez compliquée sur un fichier de vidage de 2,4 Go (noms de fichiers, noms de répertoires, commentaires et contenu de fichier tous devaient être modifiés). Il aurait été agréable d'avoir un soutien d'expression régulier pour éviter les substituts fausses positifs, mais dans mon cas, il n'y en avait que quelques-uns alors j'ai pu les réparer manuellement.



0
votes

https://metacpan.org /pod/release/salva/svn-dumpreloc-0.02/bin/svn-dump-reloc semble intéressant mais ne le fait pas (comme indiqué), vérifiez les annuaires manquants ou en double. Va écrire quelque chose de personnalisé ...


0 commentaires

0
votes

Si votre objectif ultime est d'importer tout en tout dans git , mais vous souhaitez nettoyer les choses d'abord, puis svn-all-sort-export (malheureusement pas le seul Un également connu sous le nom de svn2git ) a créé la meilleure expérience pour moi, de loin (avoir essayé svn2git avec et sans svndumpfilter et svndumpTransformer avant).

La documentation est chez https://techbase.kde.org/projects/movetogit/usingsvn2git < / a>, expliquant l'utilisation dans la migration des référentiels de subversion du projet KDE (émigré à l'origine des CV) en git.

L'outil est à https://github.com/svn-Alt-déjeuner -export / svn2git , qui inclut des fichiers de configuration d'échantillons pour des tâches courantes. Les fichiers de configuration plus complexes du processus de migration KDE assez complexe (avec des décennies de changements de structure) sont à HTTPS : //cgit.kde.org/kde-ruleset.git/ .

Le seul inconvénient que j'ai remarqué, c'est qu'apparemment, vous ne pouvez pas fusionner deux chemins dans une branche principale. Mais cela est facilement contourné par une bourse finale Renommer.


0 commentaires