2009-05-27 3 views
9

Non ho usato SVN finora. Perché un sito Web (ad esempio Stack Overflow, ad esempio) mostra una versione SVN in fondo? Che versione è? E quali sono i vantaggi di visualizzarlo in pubblico?Perché un sito visualizza la versione SVN e quali sono i vantaggi?

alt text http://shobankr.googlepages.com/so.jpg

+5

Ho modificato la questione nella speranza che possa essere soddisfacente per coloro la cui reazione istintiva è quella di chiudere tutto ciò che menziona Stack Overflow. La domanda non appartiene a UserVoice, che è per segnalazioni di bug e richieste di funzionalità. È una domanda perfettamente valida che non ha bisogno di essere così specifica, e per me non è stata necessaria molta immaginazione o sforzo per modificarlo di conseguenza. –

+0

Nessun problema Rob ;-) Grazie – Shoban

+0

@ian Quingley, quale domanda era? :) dove hai votato? – Shoban

risposta

5

Così quando un utente si lamenta del supporto, i ragazzi possono chiedergli quale versione fosse. Può accadere che l'utente veda un problema, che il software del sito sia aggiornato e il suo reclamo non sia più rilevante, quindi gli sviluppatori perderanno tempo a cercare di riprodurlo.

Questo numero è il numero di revisione SVN. Inizia da zero e aumenta automaticamente con ogni aggiunta/aggiornamento del codice sorgente durante la vita del repository SVN. Conoscendo questo numero è facile ottenere il codice sorgente completo esattamente nello stato corrispondente - il repository ha un metodo per questo.

1

dà un semplice, numero di versione univoca, senza bisogno di decidere arbitrariamente quale versione un dato codice di spinta sarà.

3

Su software tradizionale si dispone di numeri di versione come 1.0, 1.1, 2.0 ecc., Principalmente per scopi di supporto e marketing.

Sui siti Web, di solito non vi è alcun concetto di numeri di versione, in quanto normalmente vengono modificati molto più spesso rispetto al software "tradizionale". Inoltre, a volte ci sono solo cambiamenti di "architettura", come in "un po 'di ottimizzazione qui, un po' di pulizia" - cambiamenti che avvengono anche nel software "tradizionale", ma che di solito non giustificano il rilascio di una nuova versione (e l'aumento della versione da 1.0 a 1.0.1)

Quindi invece di aumentare un numero arbitrario ogni due giorni, StackOverflow ha deciso di utilizzare il numero di revisione dal loro controllo sorgente (che è Subversion, ma ogni sistema di controllo del codice sorgente ha un numero da identificare checkin).

+0

Grazie. Questo numero di versione viene generato automaticamente o tramite le impostazioni? Come possiamo tracciare questa modifica della versione e ottenere un file per questa versione? – Shoban

+1

La versione viene incrementata automaticamente dal repository stesso. L'interfaccia del repository ha un metodo per recuperare tutte le fonti date il numero di revisione. – sharptooth

+1

Il repository del codice sorgente conserva essenzialmente le copie di tutte le versioni del file.Se cambi tre volte un file, hai un totale di 4 versioni del file (Originale, Prima modifica, Seconda modifica, Terza modifica). Ogni check-in/impegno per il repository incrementa il suo numero. Quindi, se ho la versione 1 e aggiungo un file, il repository sarà la versione 2. Cambio il file, il repository è la versione 3 ecc. Quindi il numero viene incrementato automaticamente e può essere facilmente interrogato per la visualizzazione. –

1

Un altro motivo per pubblicare il numero di revisione è di aiutarvi con i test. Se stai rintracciando un bug o testando un candidato al rilascio, mostrare il numero di revisione può impedirti di ottenere confusione su quale versione stai testando.

1

Se si utilizza CruiseControl.Net, è possibile acquisire la revisione SVN nel file .state utilizzando questo: http://code.google.com/p/svnrevisionlabeller/.

Quindi interrogare l'XML nel file di stato e visualizzarlo dove desiderato.

XDocument stateFileRoot = XDocument.Load("path-to-state-file"); 

var q = (from label in stateFileRoot.Descendants("Label") 
     select (string)label).SingleOrDefault(); 

if (q != null) 
{ 
    result = q.ToString().Substring(0, q.LastIndexOf(".")); // lop off last digit 
    HttpContext.Current.Application["BuildLabel"] = result; 
} 

(In questo caso ho messo nella cache per un facile accesso e prestazioni.)

+0

Bloggato un po 'più a fondo: http://clipperhouse.com/blog/post/Displaying-the-SVN-revision-number-in-your-web-app.aspx –