2009-03-31 4 views
3

J'ai un projet Java dans un dépôt SVN, avec un tas de fichiers .java, chacun de ces fichiers a un accord de licence boîte de fleurs en haut du fichier (J'ai des clients qui ont concédé sous licence la source ainsi que le produit).Une bonne solution pour inclure du texte de modèle dans un fichier source en utilisant SVN?

Existe-t-il un bon moyen de pouvoir modifier/maintenir le texte de licence au même endroit plutôt que d'avoir à mettre à jour tous les fichiers source manuellement s'il change? En regardant certaines questions similaires (mais pas identiques), il semble que SVN n'a pas cette fonctionnalité hors de la boîte - quelles autres approches seraient les plus appropriées? Edit: Idéalement, la solution agirait comme les mots-clés SVN (Id, Author etc.) plutôt que d'être une solution de temps de construction. Le client a également accès au référentiel SVN, ce qui serait idéal si le texte de la licence était présent dans la version SVN du fichier. Je sais que SVN a des déclencheurs d'engagement - quelle est la façon simple de mettre en œuvre cela?

Édition 2: En regardant les crochets SVN, il ne semble pas que ce que je voudrais faire est possible. Je suppose que le processus de construction qui peut être exécuté lorsque le texte change est correct - puisqu'il ne changera pas trop souvent.

+0

Vos clients ont-ils besoin d'un accès immédiat à la source, ou est-ce qu'un petit délai, par exemple une heure entre la validation et la disponibilité, serait acceptable? –

+0

Cela serait probablement acceptable - suggéreriez-vous un travail pour mettre en miroir le référentiel svn et appliquer les changements (en utilisant Ant ou quelque chose)? –

Répondre

3

Modifiez les fichiers source qui doivent contenir le texte de la licence pour qu'il contienne un jeton, puis déplacez le texte de la licence vers un seul fichier conservé dans Subversion. Enfin, dans le cadre de votre processus de génération, ajoutez une étape qui remplace le texte de la licence du jeton. À mon travail, je fais quelque chose en utilisant une combinaison de sed et make. Vous pouvez ensuite exécuter cette étape unique avant de distribuer la source à vos clients.

1

ANT peut faire la substitution facilement. Regardez dans la cible <copy>.