Domanda

Cosa significano i codici risultato in SVN?Ho bisogno di un riferimento rapido.

È stato utile?

Soluzione

Per ulteriori dettagli vedere SVNBook: "Stato della copia di file e directory di lavoro".

Gli stati comuni:

U:Il file di lavoro è stato aggiornato

G:Le modifiche sul repository sono state automaticamente unite nella copia di lavoro

M:La copia di lavoro viene modificata

C:Questo file è in conflitto con la versione nel repository

?:Questo file non è sotto il controllo della versione

!:Questo file è sotto il controllo della versione ma è mancante o incompleto

UN:Questo file verrà aggiunto al controllo della versione (dopo il commit)

A+:Questo file verrà spostato (dopo il commit)

D:Questo file verrà eliminato (dopo il commit)

S:Ciò significa che il file o la directory sono stati passati dal percorso del resto della copia funzionante (utilizzando SVN Switch) su un ramo

IO:Ignorato

X:Definizione esterna

~:Tipo cambiato

R:L'articolo è stato sostituito nella tua copia di lavoro.Ciò significa che è stata pianificata l'eliminazione del file e al suo posto è stata pianificata l'aggiunta di un nuovo file con lo stesso nome.

l :L'elemento è bloccato

E:L'elemento esisteva, così come sarebbe stato creato, da un aggiornamento svn.

Altri suggerimenti

Si noti inoltre che un codice risultato nella seconda colonna si riferisce alle proprietà del file.Per esempio:

U   filename.1
 U  filename.2  
UU  filename.3

nomefile.1:il file è stato aggiornato
nomefile.2:una o più proprietà del file (come svn:keywords) sono state aggiornate
nomefile.3:sia il file che le sue proprietà sono state aggiornate

Puoi sempre ottenere un elenco eseguendo:

svn status --help

Esiste anche uno stato "E".

E = Il file esisteva prima dell'aggiornamento

Ciò può verificarsi se hai creato manualmente una cartella che sarebbe stata creata eseguendo un aggiornamento.

Voglio dire qualcosa sullo stato "G",

G:Le modifiche sul repository sono state automaticamente unite nella copia di lavoro

Penso che la definizione sopra non sia chiara, può generare un po' di confusione, perché tutti i file vengono automaticamente uniti nella copia di lavoro, quella corretta dovrebbe essere:

U = elemento (U) aggiornato alla versione del repository

G = modifiche locali dell'elemento mer(G)ed con il repository

C = modifiche locali dell'elemento (C) in conflitto con il repository

D = elemento (D) cancellato dalla copia di lavoro

A = elemento (A) aggiunto alla copia di lavoro

Di solito utilizzo svn tramite una GUI, il mio IDE o un client.Per questo motivo, non riesco mai a ricordare i codici quando devo ricorrere alla riga di comando.

Trovo che questo cheat sheet sia di grande aiuto:Foglio informativo sulla sovversione

Dai un'occhiata al riferimento al libro Subversion: "Stato della copia di file e directory di lavoro"

Altamente raccomandato a chiunque faccia praticamente qualsiasi cosa con SVN.

Colonne di stato SVN

$ svn status
L index.html

L'output del comando è suddiviso in sei colonne, ma ciò non è ovvio perché a volte le colonne sono vuote.Forse avrebbe avuto più senso indicare le colonne vuote con dei trattini, così ls -l fa, invece di niente.Allora, ad esempio, L index.html sembrerebbe --L--- index.html, il che rende ovvio che l'unica informazione che abbiamo è nella terza colonna, quella relativa al blocco.Ad ogni modo, una volta che lo sai, tutto inizia ad avere più senso.

Prima colonna Stato SVN:A, D, M, R, C, X, I, ?, !, ~

La prima colonna indica che un elemento è stato aggiunto, eliminato o modificato in altro modo.

    Nessuna modifica.

 A  L'elemento è programmato per l'aggiunta.

 D  L'elemento è programmato per l'eliminazione.

 M  L'articolo è stato modificato.

 R  L'articolo è stato sostituito nella tua copia di lavoro.Ciò significa che è stata pianificata l'eliminazione del file e al suo posto è stata pianificata l'aggiunta di un nuovo file con lo stesso nome.

 C  Il contenuto (al contrario delle proprietà) dell'elemento è in conflitto con gli aggiornamenti ricevuti dal repository.

 X  L'elemento è correlato a una definizione esterna.

 I  L'elemento viene ignorato (ad es.con la proprietà svn:ignore).

 ?  L'articolo non è sotto il controllo della versione.

 !  Manca un articolo (ad es.l'hai spostato o cancellato senza usare svn).Ciò indica anche che una directory è incompleta (un'estrazione o un aggiornamento è stato interrotto).

 ~  L'elemento ha una versione come un tipo di oggetto (file, directory, collegamento), ma è stato sostituito da un diverso tipo di oggetto.

Seconda colonna Stato SVN:M, C

La seconda colonna indica lo stato delle proprietà di un file o di una directory.

    Nessuna modifica.

 M  Le proprietà di questo elemento sono state modificate.

 C  Le proprietà di questo elemento sono in conflitto con gli aggiornamenti delle proprietà ricevuti dal repository.

Terza colonna Stato SVN:l

La terza colonna viene popolata solo se la directory della copia di lavoro è bloccata (una pulizia svn normalmente dovrebbe essere sufficiente per cancellarla)

    L'articolo non è bloccato.

 L  L'elemento è bloccato.

Stato SVN quarta colonna:+

La quarta colonna viene popolata solo se è prevista l'aggiunta con cronologia dell'elemento.

    Nessuna cronologia pianificata con commit.

 +  Cronologia pianificata con commit.

Stato SVN quinta colonna:S

La quinta colonna viene popolata solo se la copia di lavoro dell'elemento viene scambiata rispetto al suo genitore

    L'elemento è figlio della directory principale.

 S  L'articolo è cambiato.

Sesta colonna Stato SVN:K, O, T, B

La sesta colonna è popolata con le informazioni sul blocco.

    Quando viene utilizzato –show-updates, il file non viene bloccato.Se –show-updates non viene utilizzato, significa semplicemente che il file non è bloccato in questa copia di lavoro.

 K  Il file è bloccato in questa copia di lavoro.

 O  Il file è bloccato da un altro utente o in un'altra copia di lavoro.Questo appare solo quando viene utilizzato –show-updates.

 T  Il file era bloccato in questa copia di lavoro, ma il blocco è stato rubato e non è valido.Il file è attualmente bloccato nel repository.Questo appare solo quando viene utilizzato –show-updates.-

 B  Il file era bloccato in questa copia di lavoro, ma il blocco è stato rotto e non è valido.Il file non è più bloccato. Appare solo quando viene utilizzato –show-updates.

Stato SVN settima colonna:*

Le informazioni non aggiornate vengono visualizzate nella settima colonna (solo se si passa l'opzione –show-updates).Questo è qualcosa che le persone nuove a SVN si aspettano che il comando faccia, senza rendersi conto che confronta solo lo stato corrente del file con le informazioni recuperate dal server durante l'ultimo aggiornamento.

    L'elemento nella tua copia di lavoro è aggiornato.

 *  Sul server esiste una revisione più recente dell'elemento.

Ogni volta che non hai accesso alla documentazione (SVNBook), digitare (Linux):

svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'

oppure inserisci la seguente funzione nel tuo file ~/.bashrc, in questo modo:

svncode() {
  symbol=$1
  [ $symbol ] &&  svn help status | grep \'$(echo $symbol)\' || \
  echo "usage: svncode <symbol>"
}

enter image description here

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top