2011-10-11 11 views
25

Ho appena ricevuto il codice di stato SVN E per la prima volta. Cosa significa? The update documentation dice che sta per "Existed", ma non fornisce più dettagli di quello.Cosa significa il codice di stato E in SVN?

In alternativa, cos'è un "percorso di ostruzione"? Il file della guida lunga indica che "I percorsi di ostruzione sono riportati nella prima colonna con il codice" E "."

Alcuni background: ho eliminato un file dalla mia copia di lavoro che non avrei dovuto eliminare. L'aggiornamento da SVN non lo ha ripristinato, quindi ho creato un nuovo file con lo stesso nome file e copiato la copia repo del file in esso.

L'ho quindi aggiunto al controllo versione, ma questo gli ha dato lo stato "file con versione che deve essere aggiunto allo repository remoto", non lo stato "nessun cambiamento locale".

Utilizzando Subclipse, ho selezionato Sostituire Con>Ultime dal repository sulla cartella principale, e questo è accaduto:

revert -N C:/foo/Bar.java 
    Reverted C:/foo/Bar.java 
update C:/foo/Bar.java -r HEAD --force 
    E C:/foo/Bar.java 
    Updated to revision 396. 
    ===== File Statistics: ===== 
    Existing: 1 

risposta

20

Un 'percorso ostacolare' si riferisce a un esistente versionati file o una cartella in un percorso dove il comando update ha bisogno di copiare un sotto controllo di versione file o una cartella.

lo stato e compare solo quando viene utilizzato il flag --force, senza la bandiera l'aggiornamento sarebbe solo fallire. Con la bandiera, lascia il file da solo e ti consente di decidere cosa fare con esso.

La cosa sconcertante di questa situazione è il modo in cui è finito per pensare che il file non è stato seguito immediatamente dopo il successo del ripristino.

Rif: svn help update

Se il percorso ostruente è dello stesso tipo (file o directory) come il percorso corrispondente nel repository diventa di versione ma il suo contenuto sono di sinistra 'così com'è' nel copia di lavoro.

+0

Inoltre, lo stato E verrà visualizzato durante un aggiornamento di _file external_. In questo caso lo stato E è un comportamento standard, non è richiesto alcun flag '--force'. –

5

E = File esisteva prima dell'aggiornamento.

http://plind.dk/2009/06/26/svn-status-cheatsheet/

"senza versione ostacola i percorsi nel lavoro copia non causare automaticamente un fallimento se i tentativi di aggiornamento per aggiungere lo stesso percorso. Se il percorso ostruente è dello stesso tipo (file o directory) come il percorso corrispondente nel repository diventa versione ma i suoi contenuti sono lasciati "così come sono" nella copia di lavoro Ciò significa che i bambini non indirizzati della directory che ostruiscono lo possono anche ostruire e diventare versioni. Per i file, qualsiasi differenza di contenuto tra l'ostruzione e il deposito sono tr mangiato come una modifica locale alla copia di lavoro. Tutte le proprietà dal repository vengono applicate al percorso ostruente. I percorsi di ostruzione sono segnalati nella prima colonna con il codice "E".

Utilizzare l'opzione --set approfondita per impostare una nuova profondità copia di lavoro sulle obiettivi di questa operazione ".

Problemi correlati