2009-11-30 2 views
14

Sto utilizzando SVN 1.6.3 e TortoiseSVN 1.6.6. Periodicamente quando eseguo un aggiornamento dalla radice del mio progetto, SVN non riesce a raccogliere una directory appena aggiunta (aggiunta da un collega). Ho verificato che il numero di revisione è corretto e può persino vedere la nuova directory (ei relativi file) nel registro per quella revisione. Questo non sembra influenzare tutti i computer allo stesso modo (ha funzionato bene su un altro) e più aggiornamenti non lo correggeranno. Ma, se cancello la directory sopra dove dovrebbe essere questa nuova directory e faccio un altro aggiornamento SVN ... il problema è risolto.Subversion perde nuove directory durante l'aggiornamento

Il mio primo pensiero è che si tratta di un problema risolto con una versione SVN successiva (1.6.6, ecc.) O un problema con la versione del mio client TortoiseSVN. Qualcuno può confermare/negare una di queste? È facile eseguire l'aggiornamento a una nuova versione SVN con un repository esistente?

grazie ...

risposta

18

suona come voi hanno una copia di lavoro sparse. Prova svn update --set-depth infinity e vedi se lo fa.

L'equivalente in Tortoise imposta Depth di aggiornamento su "Completamente ricorsivo" quando si apre la finestra di dialogo Aggiorna.

+0

Un bug nelle prime versioni 1.6.x ha aggiunto nuove directory aggiunte localmente come sparse. Questo comando lo risolverà. I client 1.6.x recenti non hanno più questo problema –

+0

Ho avuto questo problema con svn su Ubuntu e la riga di comando in questa risposta l'ho risolta. +1 –

+0

Ho regolarmente questo problema ma non faccio mai copie di lavoro sparse. – whitey04

1

SVN è sempre stato retrocompatibile per quanto riguarda i repository, quindi non devi preoccupartene. Soprattutto perché l'ultima versione è solo la 1.6.6, quindi non sei molto indietro.

Puoi confermare che le directory che stai aspettando si trovano effettivamente nel repository?

svn ls <repository-url> 

Sulla directory principale della directory vi aspettate da aggiungere o da utilizzare il browser repository di Tortoise per verificare che sono lì.

2

Ricevo questo tipo di problemi circa una volta al mese. Nel mio caso, c'era un file nel repository che mancava localmente (potevo esplorare il repository e vederlo), ma svn pensava che la mia versione della directory fosse aggiornata. Il numero di versione interno della directory memorizzata nei file locali era corretto, ma il file di cui avevo bisogno non era lì. Ho appena controllato una nuova copia locale dell'intera enchilada per sistemarla.

5

Forse this potrebbe esserti utile?

Quando aggiorno una copia di lavoro, i nuovi file non vengono aggiunti!

Tra TortoiseSVN 1.6.0 e 1.6.1, aggiunto cartelle sono stati aggiunti con una profondità di "Solo questo elemento". Questo ha portato a un così chiamato "check-out sparse" di quella parte della tua copia di lavoro.

Si prega di aggiornare alla versione più recente di TortoiseSVN per evitare tali problemi in il futuro.

per risolvere il tuo copia di lavoro sparse, invece di "Update", utilizzare la funzione "Aggiornamento alla revisione ..." comando dal sottomenu TortoiseSVN (tasto destro del mouse in Explorer), cambiare il "Aggiornamento profondità" combobox su "Completamente ricorsivo".

5

Stiamo assistendo a una situazione in cui un'unione precedente causa un conflitto tra alberi e quindi le directory particolari non si aggiornano affatto ma non inviano un messaggio di errore nell'aggiornamento. In effetti, una volta che si verifica, non possiamo trovare alcun modo programmatico per rilevare la situazione. Il conflitto ad albero non viene visualizzato quando si cerca la modifica e l'unico modo in cui sapevamo di avere un problema era confrontando manualmente i file con il repo-browser e i registri. Solo per deduzione abbiamo capito che aveva qualcosa a che fare con un conflitto tra alberi.

Abbiamo dovuto rimuovere la directory originale e ricontrollare. E non abbiamo trovato alcun modo programmatico di rilevare quando ciò si verifica. È raro ma si è riprodotto una manciata di volte.

Informazioni terribilmente sparse, lo so.