2009-03-14 11 views
6

Il mio sito Web è una versione controllata di repo SVN. Voglio dire. Le cartelle SVN sono posizionate sul web server. Non uso la pubblicazione sul Web.Come visualizzare dinamicamente la revisione SVN sul sito web?

E voglio visualizzare la revisione del progetto corrente (intero sito web) nel piè di pagina. Come lo posso fare?

Se stavo usando la pubblicazione sul Web, potrei determinare la revisione su build/publish e scriverlo come html statico.

Quindi, come ottenere la revisione in modo dinamico? Leggi i file .svn direttamente? Ci sono modi migliori?

Ho visto altre domande simili, ma la risposta stava usando SubWCRev.exe, purtroppo non è accettabile.

Edit:Tarn ha dato un'idea interessante di SVN aggancia commettere. Altre idee?

risposta

2

È possibile scrivere ganci per SVN. È possibile scrivere un hook per aggiornare un file con la build corrente come parte del processo di checkout. Quindi puoi leggere, memorizzare nella cache e visualizzare quel numero di build sul tuo sito.

+0

Grazie per l'idea! Puoi fornire ulteriori informazioni sulla scrittura di ganci SVN? – abatishchev

+1

Phil Haack ha scritto sul blog per scrivere SVN hook in .NET usando CaptainHook http://haacked.com/archive/2006/07/31/CaptainHookIsOnSourceForge.aspx – tarn

0

L'unica cosa che posso pensare è usare i binari svn della CLI e chiamarli dalla pagina. In questo modo puoi togliere il resto e prendere il numero di revisione. Per essere onesti però, è una soluzione un po 'brutta.

+0

Che cosa sono i file binari svn della CLI? – abatishchev

+0

Binari SVN = i comandi che si usano sulla riga di comando come 'svn update' e simili. Digita "svn help" (senza virgolette) sulla riga di comando per un utile elenco di comandi che è possibile utilizzare. –

8

utilizzare keyword substitution. abilitare la sostituzione dei file che si desidera visualizzare le informazioni di revisione e inserire una parola chiave, come $Revision: 144 $, lì.

nota che

$ Rev $ espande per mostrare l'ultima revisione che ha cambiato il file, non l'ultima revisione a cui è stato aggiornamento

(vedi link sopra) . se si desidera mostrare il numero di revisione del repository globale, è meglio usare svnversion.

anche, vedere Correlati.

+0

Ho fatto questo in una variabile app, ha funzionato molto bene. – ccook

+0

Questo mostrerà la revisione in cui * quel particolare file * è stato modificato per l'ultima volta (N). Questo non è lo stesso della revisione quando la parte dell'archivio che contiene il sito web è stata modificata per ultima (M). N <= M. – bendin

+0

Non posso credere di non saperlo per il suggerimento –

1

Se si desidera visualizzare l'ultimo numero di revisione dell'intero/repository o ramo, la sostituzione delle parole chiave non aiuterà, penso che una soluzione migliore sarebbe utilizzare un software di gestione build/integrazione continua, come CruiseControl.NET o TeamCity con un buon costruire script.

duplicati di:

+1

questo * è * 645945/how-to-display-svn-revision-on-web-site-dynamically –

1

Questo precedente domanda su ha così una discussione che potrebbe essere utile a voi: Always Commit the same file with SVN.

L'ho sempre eseguito eseguendo uno script che usava sed per sostituire un commento con il timestamp corrente nel mio file $ Rev $. In questo modo, il contenuto del file cambierebbe e Subversion lo vincolerebbe.Un po 'manuale, ma potresti scrivere uno script per farlo prima, e poi fare il comando effettivo svn commit.

Problemi correlati