Question

Jeff Atwood écrit sur des espaces et suggéré la création d'engager le crochet qui élimine de fuite des espaces aux extrémités des lignes et des fichiers.

J'ai cherché, mais je n'ai pas trouvé un bon exemple d'utiliser un crochet pre-commit pour modifier les fichiers comme celui-ci. Avez-vous un script que vous souhaitez partager?

Était-ce utile?

La solution

Je suis assez sûr que pré engager des crochets ne peuvent pas être utilisés pour modifier la transaction en cours. Il ne peut autoriser ou refuser l'action de commettre. Dans votre cas, vous voulez examiner les dossiers pour voir si elles répondent à vos besoins et espaces blancs ne le commettras avec un message d'erreur utile si elles ne le font pas. Vous pouvez utiliser un post-commit crochet pour faire ce que vous proposez, mais cela impliquerait faire une seconde commettras à partir du script de crochet pour fixer le mauvais espaces dans le premier engagement. Je pense que l'approche de pre-commit hook est mieux.

Autres conseils

Vous ne pouvez pas utiliser vraiment engager des crochets pour le faire dans la subversion, parce que si le fichier est modifié par le serveur, il ne correspond pas à la version du client. Commit crochets sont pour les événements en lecture seule tels que la génération de messages de notification, ou en vérifiant les fichiers pour voir si la validation doit être bloqué.

Voir la documentation sur les crochets engager:

  

Un crochet est un programme déclenché par un événement du référentiel, comme la création d'une nouvelle révision ou la modification d'une propriété non versionnée. Quelques crochets (les soi-disant « crochets pré ») fonctionnent à l'avance d'une opération dépôt et de fournir un moyen par lequel à la fois le rapport ce qui est sur le point de se produire et l'empêcher de se produire du tout . D'autres crochets (les « crochets post ») courent après la fin d'un événement du référentiel et sont utiles pour l'exécution des tâches qui examinent mais ne modifient pas le dépôt-. Chaque crochet fournit suffisamment d'informations pour dire à quel événement est (ou était), les changements de référentiel spécifique proposé (ou terminé), et le nom d'utilisateur de la personne qui a déclenché l'événement.

Je ne sais pas quelle plate-forme que vous êtes, mais vous pouvez le faire avec TortoiseSVN , en utilisant son crochets côté client .

Essentiellement, vous écririez un script qui modifierait les fichiers à l'aide d'un crochet pre-commit. Je pense que cela est plus correctement fait dans un script de compilation si vous ne voulez pas vraiment de commettre code que vous avez même pas compilé ou courir! Votre script qui supprime les espaces pourraient casser quelque chose, selon le contexte / langue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top