Cosa significano i codici risultato in SVN?


300

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

Risposte:


518

Per ulteriori dettagli, consultare SVNBook: "Stato dei file e delle directory di copia funzionanti" .

Gli stati comuni:

U : il file di lavoro è stato aggiornato

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

M : la copia di lavoro è stata modificata

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

? : Questo file non è sotto controllo di versione

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

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

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

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

S : Questo significa che il file o la directory sono stati passati dal percorso del resto della copia di lavoro (usando l'interruttore svn) a un ramo

I : Ignorato

X : definizione esterna

~ : Tipo modificato

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

L : L'articolo è bloccato

E : L'articolo esisteva, come sarebbe stato creato, da un aggiornamento svn.


12
"R": questo file è stato sostituito
manifest

8
Che dire E? Tutta la documentazione dice che "esiste", il che non è molto utile.
apre l'

2
+1, ma "G: Le modifiche al repository sono state automaticamente unite nella copia di lavoro" non è nella fonte fornita (più?)
Julian

86

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 proprietà o proprietà sul file (come svn: parole chiave) è stata aggiornata
nomefile.3: sia il file che le sue proprietà sono state aggiornate


36

Puoi sempre ottenere un elenco eseguendo:

svn status --help

19

Voglio dire qualcosa sullo stato "G",

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

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

U = item (U) aggiornato alla versione del repository

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

C = modifiche locali dell'elemento (C) onflicted con repository

D = elemento (D) eliminato dalla copia di lavoro

A = articolo (A) con copia di lavoro


Informazioni sullo stato "G". Ho avuto 2 copie delle modifiche in 2 diverse directory di check-out. Ho eseguito il commit delle modifiche da una directory di checkout e quando ho aggiornato l'altra directory di checkout mostrava lo stato 'G' indicando che le modifiche nella directory locale erano state unite al repository.
GuruM

18

C'è anche uno stato "E"

E = Il file esisteva prima dell'aggiornamento

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


13

Di solito uso svn attraverso una GUI, sia 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: Subversion Cheat Sheet


1
Non elenca lo stato G.
Ark-kun,

13

Colonne di stato SVN

$ svn status
L index.html

L'output del comando è diviso in sei colonne, ma ciò non è ovvio perché a volte le colonne sono vuote. Forse avrebbe avuto più senso indicare le colonne vuote con trattini, come ls -lfa invece che niente. Quindi, ad esempio, L index.htmlsarebbe simile--L--- index.html , il che rende ovvio che l'unica informazione che abbiamo è nella terza colonna quella sul blocco. Comunque, una volta che sai che inizia a dare 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'articolo è programmato per l'aggiunta.

 D    L'articolo è programmato per l'eliminazione.

 M    L'articolo è stato modificato

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

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

 X    L'articolo è correlato a una definizione esterna.

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

 ?    L'articolo non è sotto controllo della versione.

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

 ~    L'elemento ha la 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 articolo sono state modificate.

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

Terza colonna di stato SVN: L

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

      L'articolo non è bloccato.

 L    L'articolo è bloccato.

Quarta colonna di stato SVN: +

La quarta colonna viene popolata solo se l'elemento è pianificato per l'aggiunta con cronologia.

      Nessuna cronologia pianificata con commit.

 +    Cronologia pianificata con commit.

Quinta colonna di stato SVN: S

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

      L'elemento è un figlio della sua directory padre.

 S    L'articolo è cambiato.

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

La sesta colonna è popolata con informazioni di blocco.

      Quando si utilizza –show-updates, il file non è bloccato. Se –show-updates non viene utilizzato, ciò 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 si usano –show-updates.

 T    Il file è stato bloccato in questa copia di lavoro, ma il blocco è stato rubato e non è valido. Il file è attualmente bloccato nel repository. Questo appare solo quando si usano –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 Questo appare solo quando si usa –show-updates.

Settima colonna SVN Status: *

Le informazioni non aggiornate vengono visualizzate nella settima colonna (solo se si passa al parametro –show-updates). Questo è qualcosa che le persone che non conoscono SVN si aspettano che faccia il comando, non rendendolo conto solo confrontare lo stato corrente del file con le informazioni che ha recuperato dal server nell'ultimo aggiornamento.

      L'articolo nella tua copia di lavoro è aggiornato.

 *    Una revisione più recente dell'elemento esiste sul server.



7

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

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

o 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>"
}

inserisci qui la descrizione dell'immagine


1
IMO, non è "quando hai fretta" ma "quando non hai accesso alla documentazione" (es. SVNBook).
bahrep,

@bahrep grazie, questo è il modo di guardarlo. Corretto come suggerito.
Alan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.