visual - O que significam os códigos de resultado no SVN?




visual svn (6)

Colunas de status SVN

$ svn status
L index.html

A saída do comando é dividida em seis colunas, mas isso não é óbvio, porque às vezes as colunas estão vazias. Talvez tivesse feito mais sentido indicar as colunas vazias com traços, como ls -l faz, em vez de nada. Então, por exemplo, L index.html se pareceria com --L--- index.html , o que torna óbvia que as únicas informações que temos são na terceira coluna, sobre bloqueio. De qualquer forma, uma vez que você saiba que isso começa a fazer mais sentido.

Primeira coluna do status SVN: A, D, M, R, C, X, I,?,!, ~

A primeira coluna indica que um item foi adicionado, excluído ou alterado.

Sem modificações.

A item está agendado para adição.

D item está programado para exclusão.

M item foi modificado.

R item foi substituído na sua cópia de trabalho. Isso significa que o arquivo foi agendado para exclusão e, em seguida, um novo arquivo com o mesmo nome foi agendado para inclusão em seu lugar.

C O conteúdo (ao contrário das propriedades) do item entra em conflito com as atualizações recebidas do repositório.

X item está relacionado a uma definição externa.

I item está sendo ignorado (por exemplo, com a propriedade svn: ignore).

? O item não está sob controle de versão.

! O item está ausente (por exemplo, você o moveu ou o excluiu sem usar o svn). Isso também indica que um diretório está incompleto (uma verificação ou atualização foi interrompida).

~ item é versionado como um tipo de objeto (arquivo, diretório, link), mas foi substituído por um tipo diferente de objeto.

Segunda coluna do status SVN: M, C

A segunda coluna informa o status das propriedades de um arquivo ou diretório.

Sem modificações.

M propriedades deste item foram modificadas.

C propriedades deste item estão em conflito com as atualizações de propriedades recebidas do repositório.

Terceira coluna do status SVN: L

A terceira coluna é preenchida apenas se o diretório da cópia de trabalho estiver bloqueado (uma limpeza svn normalmente deve ser suficiente para limpá-lo)

O item não está bloqueado.

L item está bloqueado.

Status da SVN quarta coluna: +

A quarta coluna é preenchida apenas se o item estiver agendado para adição com histórico.

Nenhum histórico agendado com confirmação.

+ Histórico agendado com confirmação.

Quinta coluna do status SVN: S

A quinta coluna é preenchida apenas se a cópia de trabalho do item for alternada em relação ao pai

Item é filho de seu diretório pai.

S item está trocado.

Sexta coluna do status SVN: K, O, T, B

A sexta coluna é preenchida com informações de bloqueio.

Quando –show-updates é usado, o arquivo não está bloqueado. Se –show-updates não for usado, isso significa apenas que o arquivo não está bloqueado nesta cópia de trabalho.

K arquivo está bloqueado nesta cópia de trabalho.

O arquivo está bloqueado por outro usuário ou em outra cópia de trabalho. Isso aparece apenas quando –show-updates é usado.

T arquivo foi bloqueado nesta cópia de trabalho, mas o bloqueio foi roubado e é inválido. O arquivo está atualmente bloqueado no repositório. Isso só aparece quando –show-updates é usado.-

B arquivo foi bloqueado nesta cópia de trabalho, mas o bloqueio foi quebrado e é inválido. O arquivo não está mais bloqueado. Isso só aparece quando –show-updates é usado.

Sétima coluna do status SVN: *

As informações desatualizadas aparecem na sétima coluna (somente se você passar na opção –show-updates). Isso é algo que as pessoas novas no SVN esperam que o comando faça, não percebendo que ele apenas compara o estado atual do arquivo com as informações que ele buscou no servidor na última atualização.

O item da sua cópia de trabalho está atualizado.

* Existe uma revisão mais recente do item no servidor.

O que significam os códigos de resultado no SVN? Eu preciso de uma referência rápida.



Há também um status 'E'

E = O arquivo existia antes da atualização

Isso pode acontecer se você tiver criado manualmente uma pasta que seria criada executando uma atualização.


Observe também que um código de resultado na segunda coluna se refere às propriedades do arquivo. Por exemplo:

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

filename.1: o arquivo foi atualizado
filename.2: uma propriedade ou propriedades no arquivo (como svn: keywords) foram atualizadas
filename.3: o arquivo e suas propriedades foram atualizados


Quero dizer algo sobre o status "G",

G: as alterações no repositório foram mescladas automaticamente na cópia de trabalho

Eu acho que a definição acima não é clara, pode gerar um pouco de confusão, porque todos os arquivos são automaticamente mesclados na cópia de trabalho, a correta deve ser:

U = item (U) atualizado para a versão do repositório

G = alterações locais do item, mer (G) ed com repositório

C = alterações locais do item (C) infligidas pelo repositório

D = item (D) excluído da cópia de trabalho

A = item (A) copiado para a cópia de trabalho


Sempre que você não tiver acesso à documentação ( SVNBook ), digite (Linux):

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

ou insira a seguinte função no seu arquivo ~ / .bashrc, da seguinte maneira:

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







svn