2009-04-30 5 views
1

Mon problème est: Je ne veux pas afficher dans le fichier "A" le dernier numéro de révision du fichier "B".Subversion substitution de mots-clés inter-fichiers

Subversion a une fonctionnalité appelée "Keyword Substitution". Il est utilisé les mots-clés remplacer dans le contenu du fichier par la valeur réelle lorsque vous le commettez.

Mais est-il possible d'ajouter un mot-clé dans un fichier qu'il sera remplacé par une valeur liée à un autre fichier? Si non, quelle est la solution à mon problème d'origine ci-dessus? Je suppose que Jeff Atwood le fait, ici sur le site de StackOverflow. Si je me souviens bien, il a même commenté à ce sujet dans un podcast précédent.

<script type="text/javascript" src="/content/js/master.js?v=3067"></script> 

"v = 3067" semble être le dernier numéro de révision de "master.js". Jeff, peux-tu me donner un coup de main? :)

Répondre

1

Eh bien, ce nombre peut être l'une des deux choses:

  1. Le numéro de révision de tête du référentiel du site
  2. Le numéro de révision de la dernière modification de ce fichier particulier

Dans les deux cas, il sert un but spécifique, pour s'assurer que lorsqu'un utilisateur obtient une page Web avec une référence à un fichier CSS ou javascript, avec un tel numéro de version, si le numéro de version a changé depuis la dernière fois. l'utilisateur a visité la même page, le navigateur Web Je ne tiens pas compte de son cache local pour ce fichier, et le retélécharger. À moins que vous ne vouliez épingler cette référence à une ancienne version, je dirais que vous pourriez simplement le mettre à jour avec le numéro de révision HEAD. Ce serait "sûr" dans le sens où il vous donnerait ce que vous voulez, mais pourrait gaspiller de la bande passante, car il va forcer le téléchargement d'un fichier qui peut avoir changé ou non. Si vous avez vraiment besoin du numéro de révision de cet autre fichier, pour ce lien, je dirais que vous devriez rouler votre propre solution avec un petit programme, un système de mot-clé personnalisé, et analyser le fichier journal.

Par exemple, vous pouvez le faire:

rc="/content/js/master.js?v=#Rev(master.js)#" 

et ont une expression régulière qui ressemble à cela:

#Rev\((?<filename>[^)])\)# 

et vous devrez alors lire le fichier journal de Subversion, vous pouvez afficher ceci avec XML.

Questions connexes