Respostas:
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.
E
? Toda a documentação diz que é "Existed", o que não é tão útil.
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
Você sempre pode obter uma lista executando:
svn status --help
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
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
$ 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 -l
faz, em vez de nada. Então, por exemplo, L index.html
pareceria--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.
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.
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.
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.
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.
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.
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.
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.
Dê uma olhada na referência do livro do Subversion: "Status dos arquivos e diretórios da cópia de trabalho"
Altamente recomendado para quem faz praticamente qualquer coisa com o SVN.
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>"
}