2011-04-29 3 views
2

Je voudrais nettoyer un référentiel subversion existant contenant du code Perl mal formaté. Puisque je ne suis pas sûr si des comparaisons avec un code assez ancien seront nécessaires, idéalement, j'aimerais avoir le même formatage pour toutes les révisions. D'autre part, en créant un nouveau repo en vérifiant toutes les anciennes révisions, le reformatage avec perltidy et l'archivage devront conserver les messages du journal d'origine.subversion de subversion Perl repo avec PerlTidy?

Existe-t-il des outils/recettes pour le faire?

Répondre

3

Que voulez-vous exactement faire? Nettoyer toutes les anciennes révisions?

Ne le faites pas. Vous allez détruire votre historique, et même si vous générez le même script Perl (tout juste rangé), vous pourriez finir par vous faire perdre une révision déjà publiée. D'ailleurs ça ne vaut pas la peine.

Je vous recommande de vérifier vos révisions actuelles, exécutez Perl Tidy, puis vérifiez vos modifications. Vous ne changerez pas votre ancien code, mais il vous donnera des choses propres à partir de maintenant. Bien sûr, si votre code Perl est si mal formaté que vous voulez exécuter le tout avec Perl bien rangé, vous avez plus de problèmes. Qu'est-ce qui empêche quelqu'un de faire un gâchis du code à nouveau?

Je vous recommande également de regarder Jenkins dans le cadre d'un processus de construction continue. Vous ne compilez pas code Perl, mais vous pouvez utiliser Jenkins pour exécuter des tests afin de vous assurer que tous les nouveaux scripts Perl et toutes les modifications apportées à vos scripts Perl ont été rangés. Si un script Perl a une mauvaise mise en forme, vous allez Echec la construction et l'email vous-même et le développeur.

Les développeurs prendre en main rapidement Perl Tidy avant de vérifier dans le nouveau code Perl de face à l'embarras du public d'avoir un échoué construire. D'ailleurs, le reste de votre équipe de développement soutient-il votre effort? Si ce n'est pas le cas, la première chose à faire est de les convaincre qu'un bon formatage Perl peut aider à réduire les bogues et leur fournir des outils qui les aideront à automatiser leurs efforts de mise en forme.

+0

Oui, je voulais nettoyer les anciennes révisions, mais comme je ne trouvais pas d'outils/recettes pour le faire, j'ai commencé à penser que ça pouvait être une mauvaise idée. Je vais vérifier Jenkins à coup sûr. Je vais passer le mot à propos de Perltidy. – darked89

4

Pour l'avenir, je recommanderais un svn pre-commit hook à un script exécutant Test::PerlTidy pour forcer tout le monde à garder son code bien rangé. Plutôt que d'essayer de modifier toutes les validations précédentes, vous pouvez envisager une commande personnalisée svn diff lorsque vous souhaitez effectuer des comparaisons avec d'anciennes versions. Quelque chose comme:

#!/bin/bash 
# tidydiff.sh for tidying code before diffing 
perltidy "$1" > "/tmp/$1" 
perltidy "$2" > "/tmp/$2" 
diff "$1" "$2" 
rm "/tmp/$1" "/tmp/$2" 

puis en utilisant svn diff --diff-cmd=tidydiff.sh quand vous voulez regarder les anciennes versions.