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


300

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

Respostas:


518

Para detalhes adicionais, consulte o SVNBook: "Status dos arquivos e diretórios da cópia de trabalho" .

Os status comuns:

U : o arquivo de trabalho foi atualizado

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

M : cópia de trabalho é modificada

C : este arquivo está em conflito com a versão no repositório

? : Este arquivo não está sob controle de versão

! : Este arquivo está sob controle de versão, mas está ausente ou incompleto

R : Este arquivo será adicionado ao controle de versão (após confirmação)

A + : Este arquivo será movido (após confirmação)

D : Este arquivo será excluído (após confirmação)

S : Isso significa que o arquivo ou diretório foi alternado do caminho do restante da cópia de trabalho (usando svn switch) para uma ramificação

I : ignorado

X : definição externa

~ : Tipo alterado

R : O 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.

L : o item está bloqueado

E : O item existia, como teria sido criado, por uma atualização svn.


12
"R": esse arquivo foi substituído
manifesto em

8
Que tal E? Toda a documentação diz que é "Existed", o que não é tão útil.
Pops

2
+1, mas "G: Alterações no repo foram incorporadas automaticamente para a cópia de trabalho" não é na fonte de dados (mais?)
Julian

86

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 do arquivo (como svn: keywords) foi atualizada
filename.3: o arquivo e suas propriedades foram atualizados


36

Você sempre pode obter uma lista executando:

svn status --help

19

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


Sobre o status 'G'. Eu tinha 2 cópias das alterações em 2 diretórios diferentes de check-out. Confirmei as alterações de um dir-checkout e quando atualizei o outro dir-checkout mostrou o status 'G' indicando que as alterações no diretório local foram mescladas com o repositório.
gurum

18

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.


13

Eu costumo usar svn através de uma interface gráfica, meu IDE ou um cliente. Por isso, nunca consigo me lembrar dos códigos quando preciso recorrer à linha de comando.

Acho esta folha de dicas uma grande ajuda: Subversion Cheat Sheet


1
Ele não lista o status G.
Arca-kun

13

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 o ls -lfaz, em vez de nada. Então, por exemplo, L index.htmlpareceria--L--- index.html , o que torna óbvia que a única informação que temos é, na terceira coluna, aquela 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    O item está agendado para adição.

 D    O item está agendado para exclusão.

 M    O item foi modificado.

 R    O 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    O item está relacionado a uma definição externa.

 I    O 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).

 ~    O item tem a versão 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    As propriedades deste item foram modificadas.

 C    As 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    O 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 é um filho de seu diretório pai.

 S    O item está trocado.

SVN Status sexta coluna: 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    O arquivo está bloqueado nesta cópia de trabalho.

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

 T    O 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    O 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.



7

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

insira a descrição da imagem aqui


1
Na IMO, não é "quando você está com pressa", mas "quando você não tem acesso à documentação" (por exemplo, SVNBook).
bahrep

@ Bahrep obrigado, essa é a maneira de olhar para ele. Corrigido conforme sugerido.
Alan Alan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.