Le formatage automatique du code SVN à l'enregistrement?
Est-ce possible? Si oui, comment dois-je faire?
Le code est en C# et nous sommes en utilisant TortoiseSVN.
Je veux simplement automatique du format, le code sur chaque vérification.
Merci beaucoup
source d'informationauteur SuperSuperDev1234
Vous devez vous connecter pour publier un commentaire.
Vous êtes en contact sur saint-terrain de guerre. Mussing avec les gens du formatage de la demande de fourches et de torches.
Ma recommandation: Ne pas.
Pour ne pas mentionner, si vous parlez, C#, et vos développeurs sont à l'aide de Visual Studio, VS a beaucoup d'auto-outils de mise en forme. En entrant simplement que la fermeture bouclés-corset et VS pouvez/automatique-format de votre code.
Une meilleure solution peut être d'obtenir tous vos développeurs à utiliser de la même auto-paramètres de mise en forme.
Ces paramètres sont exportables, donc si vous pouvez obtenir de l'équipe s'engagent à utiliser le même code-paramètres de mise en forme de VS, vous pouvez éviter le problème de l'effectuer dans votre système de contrôle de source qui est préférable de faire ce qu'il fait de mieux.
Si vous êtes hell-bent de le faire, un pre-commit hook, comme d'autres l'ont dit, est le chemin à parcourir. Si vous êtes serveur SVN est en cours d'exécution sur Windows, je peux recommander CaptainHook pour écrire vos scripts de hook? Plugin-mesure hookscripts que vous pouvez écrire en toute .NET de la langue.
Avec un pre-commit hook script, vous pourriez le faire, oui.
Mais je suis sûr que vous allez supprimer ce script après la première livraison parce que vous obtiendrez dans de gros problèmes.
Si vous modifiez les données de validation, le client ne connaît pas. Après un commit où votre script 'bugs' la mise en forme d'un fichier, le contenu du fichier dans le référentiel est différent de celui des fichiers de votre copie de travail. Mais votre copie de travail pense toujours que c'est à jour avec le référentiel (après tout, c'est des modifications viens de recevoir commis).
Donc sur la prochaine mise à jour, vous obtiendrez dans l'enfer cassés à la copie de travail, de la colère des utilisateurs, ...
Et bien sûr, vous pouvez briser la construction - auto mise en forme a cet effet, parfois.
Vous pouvez bien sûr mettre en œuvre un script hook qui vérifie pour une mise en forme correcte et renvoie une erreur si elle ne le fait pas, c'est parfaitement bien.
Et puisque vous êtes en utilisant TortoiseSVN, vous pouvez essayer de faire la mise en forme d'un côté client pre-commit hook.
Je pense que vous pouvez faire cela en utilisant un pre-commit hook dans votre référentiel.
Modifier Pour les gens qui pensent que c'est une mauvaise idée (je ne dis pas qu'il n'est pas): Il n'est pas rare pour les organisations à appliquer un code de style ou de formatage de code. Parfois, ces règles peuvent être assez pédant et strictement appliquées, et bien qu'ils soient généralement les actions de l'homme impliqués dans ce (c'est à dire la mise en forme à le style correct avant de vous engager à rien dans le référentiel), en automatisant le processus peut parfois être utile.
Une approche alternative pourrait être de faire de la vérification automatique avant la livraison, mais encore de permettre à la commettre, même si la vérification échoue, mais alors seulement envoyer un e-mail ou une autre notification pour indiquer que quelqu'un n'a pas suivi le style.
comme la plupart des gens ici, je suis d'accord ajout d'un pre-commit-crochet qui réécrit leur code est mauvais, mais vous pouvez avoir un pre-commit hook qui rejette le code qui n'est pas formaté pour vos pratiques de codage et d'informer l'utilisateur d'une telle erreur.
Je le recommande fortement.
Utiliser un pré-script de validation ou, mieux encore, trouver un moyen de le faire automatiquement dans votre IDE (pre-commit va pousser le fichier modifié sur le client). Eclipse peut format automatique sur enregistrer.
La raison pour cela est que si les développeurs format différemment, vous trouverez les fichiers qui n'engage sur eux, si la livraison n'est qu'une modification de mise en forme et il va provoquer la confusion sans fin.
Une mise en forme de pattern est une très bonne idée. Il va être difficile de faire introduire, mais ça va être la peine. Toutes les modifications seront de réels changements, et pas seulement les changements de formatage. Dans mon expérience, les développeurs vont voir les avantages et les accepter.
J'ai travaillé avec cv et java et utilisé bagnole de format automatique. Nous avons été à l'aide d'un système ramifié de sorte qu'il était obligatoire, et ça a très bien fonctionné.
C'est possible, mais aussi un très, très mauvaise idée.
Pas de code automatique formateurs sont parfaits, et je peux presque garantir qu'il cochera les gens.
Cela dit, si vous voulez le faire, regarde dans l'aide de pré-engager les crochets.
Est le serveur SVN en cours d'exécution sur un système Windows ou Linux? Et quel est le code-formateur voulez-vous utiliser?