O que significam os códigos de resultado no SVN?
-
08-06-2019 - |
Pergunta
O que significam os códigos de resultado no SVN?Preciso de uma referência rápida.
Solução
Para obter detalhes adicionais, consulte o SVNBook: "Status dos arquivos e diretórios da cópia de trabalho".
Os status comuns:
você:O arquivo de trabalho foi atualizado
G:As alterações no repositório foram automaticamente mescladas na cópia de trabalho
M:A cópia de trabalho foi 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
A:Este arquivo será adicionado ao controle de versão (após commit)
UM+:Este arquivo será movido (após commit)
D:Este arquivo será excluído (após commit)
S:Isso significa que o arquivo ou diretório foi alterado do caminho do restante da cópia de trabalho (usando o switch SVN) para uma filial
EU:Ignorado
X:Definição externa
~:Tipo alterado
R:O item foi substituído em 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 adição em seu lugar.
eu :O item está bloqueado
E:O item existia, como teria sido criado, por uma atualização do SVN.
Outras dicas
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
nome do arquivo.1:o arquivo foi atualizado
nome do arquivo.2:uma propriedade ou propriedades no arquivo (como svn:keywords) foram atualizadas
nome do arquivo.3:tanto o arquivo quanto suas propriedades foram atualizados
Você sempre pode obter uma lista executando:
svn status --help
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 teria sido criada ao realizar uma atualização.
Quero dizer algo sobre o status "G",
G:As alterações no repositório foram automaticamente mescladas na cópia de trabalho
Acho que a definição acima não está clara, pode gerar um pouco de confusão, pois todos os arquivos são automaticamente mesclados na cópia de trabalho, o correto deveria ser:
U = item (U)pdatado 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) em conflito com o repositório
D = item (D) excluído da cópia de trabalho
A = item (A) adicionado à cópia de trabalho
Eu costumo usar o svn através de uma interface gráfica, seja meu IDE ou um cliente.Por causa disso, nunca consigo lembrar os códigos quando tenho que recorrer à linha de comando.
Acho esta folha de dicas uma grande ajuda:Folha de dicas do Subversion
Dê uma olhada na referência do livro Subversion: "Status dos arquivos e diretórios da cópia de trabalho"
Altamente recomendado para qualquer pessoa que faça praticamente qualquer coisa com SVN.
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 fizesse mais sentido indicar as colunas vazias com travessões, a forma como ls -l
faz, em vez de nada.Então, por exemplo, L index.html
pareceria --L--- index.html
, o que torna óbvio que a única informação que temos está na terceira coluna sobre o bloqueio.De qualquer forma, quando você sabe disso, 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 de outra forma.
Sem modificações.
A
O item está programado para adição.
D
O item está programado para exclusão.
M
O item foi modificado.
R
O item foi substituído em 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 adição em seu lugar.
C
O conteúdo (em oposição às 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 ex.com a propriedade svn:ignore).
?
O item não está sob controle de versão.
!
O item está faltando (por ex.você o moveu ou excluiu sem usar o svn).Isso também indica que um diretório está incompleto (um checkout ou atualização foi interrompido).
~
O item é versionado como um tipo de objeto (arquivo, diretório, link), mas foi substituído por um tipo diferente de objeto.
Segunda coluna de 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 propriedade recebidas do repositório.
Terceira coluna do status SVN:eu
A terceira coluna é preenchida apenas se o diretório da cópia de trabalho estiver bloqueado (uma limpeza do svn normalmente deve ser suficiente para limpá-lo)
O item não está bloqueado.
L
O item está bloqueado.
Quarta coluna do status SVN:+
A quarta coluna será preenchida somente se o item estiver programado para adição com histórico.
Nenhum histórico agendado com commit.
+
Histórico agendado com commit.
Quinta coluna do status SVN:S
A quinta coluna é preenchida apenas se a cópia de trabalho do item for trocada em relação ao seu pai
Item é filho de seu diretório pai.
S
O item foi 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 é 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 está bloqueado por outro usuário ou em outra cópia de trabalho.Isso só aparece 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 pela opção –show-updates).Isso é algo que as pessoas que são novas no SVN esperam que o comando faça, sem perceber que ele apenas compara o estado atual do arquivo com as informações que ele obteve do servidor na última atualização.
O item em sua cópia de trabalho está atualizado.
*
Existe uma revisão mais recente do item no servidor.
Sempre que você não tiver acesso à documentação (Livro SVN), digite (Linux):
svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'
ou insira a seguinte função em seu arquivo ~/.bashrc, assim:
svncode() {
symbol=$1
[ $symbol ] && svn help status | grep \'$(echo $symbol)\' || \
echo "usage: svncode <symbol>"
}