2009-12-07 11 views
11

Got succedendo qualcosa che non so spiegare.Subversion stranezza - svn informazioni revisione più rispetto allo scorso rev cambiato sulla cartella del progetto

Ho una copia di lavoro del mio progetto - fatto svn update (che dice: aggiornato per la revisione 1895), lo so che è l'ultima. Quando si esegue un svn info sulla cartella del progetto, la revisione è del 1895, ma l'ultimo Rev cambiato è 1888.

Ispezione del registro utilizzando TortoiseSVN mostra 1888 come l'ultima revisione, nessuna traccia di 1895. Un svn log il 1895 è vuota e un svn diff tra il 1895 e il 1888 è vuoto, vale a dire. nessuna differenza.

Come ho fatto in qualche modo finire con qualche revisione canaglia che non ha davvero cambiato qualcosa? Fondamentalmente sta causando la sincronizzazione del build server (si pensa che sia nel 1888) con la mia attività SvnVersion di MSBuild (la revisione è del 1895).

Qualsiasi suggerimento apprezzato.

Edit: Se Revisione mostrerà sempre l'ultima revisione per l'intero repository, vuol dire che le cose come compito svnversion MSBuild (che usa svnversion.exe, ma presenta un comportamento simile) non visualizzano la revisione corretta per quando hai un repository singolo di progetto multiplo, dovrai usare "Last Changed Rev" per il tuo numero di versione.

Come risultato, ora il mio compito a rotazione SvnLastChangedRev MSBuild.

+0

In realtà non è un grosso problema che è l'intero pronti contro termine: se si effettua il checkout di tale revisione, si otterrà comunque la copia corretta del codice per quel progetto, ed essere in grado di ricostruirlo. Se stai usando qualcosa come CruiseControl, imposta solo modifiche alle modifiche, quindi non otterrai una nuova versione per quel progetto (supponendo che sia l'unica cosa verificata) comunque. – gregmac

+0

sei arrivato ovunque con il tuo compito di SvnLastChangedRev MSBuild? Dato che ho un problema simile –

+1

@James - sì, ho pubblicato un sacco di utili compiti di MSBuild su CodePlex, che include quello di SvnLastChangedRev. Vedi: http://zealanditmsbuild.codeplex.com/ –

risposta

20

Questo non è un problema o una stranezza ... il numero di revisione si applica all'intero repository Subversion e, pertanto, il numero di revisione potrebbe essere più elevato a causa di modifiche altrove nel repository rispetto all'ultimo numero di revisione in cui qualcosa è cambiato nel ramo del repository in cui stai lavorando.

per chiarire, se si impegnano a trunk, portando il repository alla revisione 10, e poi tutta una serie di cambiamenti nella branches e tags porta il repository alla revisione 1000, poi 10 sarà "l'ultimo cambiato revisione" per la trunk cartella, ma il numero di revisione corrente dell'intero repository sarebbe 1000.

+0

Sono consapevole che il numero di revisione è globale per repository. Ma quando eseguo un aggiornamento in una cartella di lavoro che presenta alcuni livelli di gerarchia lungo l'albero del repository, non avrei mai notato che sarebbe stato aggiornato all'ultima revisione a livello globale, solo fino all'ultimo per quel percorso. –

+0

@WimHollebrandse Vedrete la revisione aggiornata globalmente solo quando eseguite l'aggiornamento svn nella root del checkout/repository. Subversion non aggiornerà mai i metadati per le directory madri. –

Problemi correlati