2009-04-26 6 views
5

Est-il possible de faire exécuter par svn une commande avant chaque commit? J'ai de la documentation dans LaTeX dans le dépôt et j'aimerais avoir toujours la dernière version des docs compilés disponible en PDF dans le dépôt. La même chose irait avec docs Doxygen. Je parierais qu'il ya une propriété magique svn:something ou quelque chose comme ça, mais n'a encore rien trouvé.Comment générer de la documentation en exécutant une commande avec chaque commit svn

Répondre

2

Si vous générez automatiquement la documentation, pourquoi la mettre dans le référentiel? Vous le créez à chaque fois, il ne sert donc à rien de le faire versionner (il est généré après tout). Je préfère utiliser un hook de pré-commit pour générer la documentation et la placer dans un endroit commun pour y accéder plutôt que de la stocker dans le référentiel - le stocker dans le référentiel crée une redondance qui devrait être évitée de mon point de vue.

(Et je suis d'accord que les crochets pré-COMMIT ne doivent pas modifier ce qui est commis :)

+0

Cette réponse est un peu présomptueuse; il y a des raisons valables d'auto-générer quelque chose avant le commit. En voici un: les développeurs qui effectuent la validation peuvent avoir l'utilitaire correct installé pour effectuer la génération automatique, mais le système déployé peut ne pas l'être. Ou le système déployé sur peut ne pas être configuré pour recevoir le code source (juste le code compilé). –

7

Vous pouvez facilement faire l'inverse. Créez un script shell qui exécute svn commit après avoir créé des éléments.

0

Utilisez un pre-commit hook

+0

crochets pré-COMMIT doivent * pas * modifier ce qui est commis. Voir http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html#svn.reposadmin.create.hooks –

+2

Absolument, je ne suis pas au courant que c'est ce que j'ai suggéré. Autant que je comprends les questions étaient sur la façon de déclencher la génération automatique de la documentation. –

1

Toutes ces actions sont contrôlées sur le côté serveur. Regardez dans le répertoire du référentiel et vous trouverez un dossier hooks avec une tonne d'exemples de scripts. Vous voulez le crochet pré-commit. Gardez à l'esprit que si vous exécutez le serveur sous Windows, que ces scripts sont exécutés sans environnement, ne supposez pas qu'un chemin est défini et utilisez des chemins absolus.

+1

Les hooks de pré-commit ne doivent pas * modifier * ce qui est en cours de validation. Voir http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html#svn.reposadmin.create.hooks –

+0

Ne répond pas à l'OP, qui a demandé "Y at-il un moyen de faire ces des choses sur un * client *? " (On dirait que les hooks sont côté serveur.) –

Questions connexes