Como faço para determinar a versão de layout de cópia de trabalho do SVN?

StackOverflow https://stackoverflow.com/questions/1364618

  •  21-09-2019
  •  | 
  •  

Pergunta

Por exemplo, o cliente SVN 1.5 possui um layout para cópias de trabalho e o cliente SVN 1.6 possui um layout diferente. Entendo que o layout é automaticamente atualizado quando é tocado por um cliente mais novo.

Se eu tenho uma cópia de trabalho no meu sistema, como posso descobrir a versão do layout que está usando?

Foi útil?

Solução

Se .svn/format Existe, então leia o número nele:

  • A versão 7 é SVN 1.3
  • A versão 8 é SVN 1.4
  • A versão 9 é SVN 1.5

Se .svn/format não existe então o número da versão está na primeira linha em .svn/entries:

  • A versão 10 é SVN 1.6
  • A versão 12 é SVN 1.7

Subversão 1.6 foi o primeiro a não usar .svn/format. Versão 7 ou mais usou baseado em XML .svn/entries Arquivo, versões mais recentes usam menos formato de arquivo baseado em linha detalhado.

Como subversão 1.7, o número da versão é armazenado no .svn/wc.db Banco de dados SQLite no campo "user_version". Então, embora .svn/format é esbarrado na versão 12 A versão real do formato é 29 e as versões futuras podem não atualizar .svn/format não mais. Para obter o número da versão de .svn/wc.db Existem dois métodos:

  1. se você tem sqlite3 no seu caminho, sqlite3 .svn/wc.db "PRAGMA user_version"
  2. Se você não tem sqlite3 No seu caminho, aberto .svn/wc.db em um editor hexadecimal e leia o DWORD no deslocamento 0x3c

Todos os números de versão do formato são descritos em WC.H junto com os números de versão dos respectivos lançamentos de subversão.

Outras dicas

Da questão de transbordamento de pilha Descubra a versão de cópia de trabalho do SVN (1.7 ou 1.8):

Pode -se usar sqlite3 .svn/wc.db "PRAGMA user_version" no SVN 1.7 ou mais tarde (ou od -An -j63 -N1 -t dC .svn/wc.db Se você só tem o SQLITE 3.0 bibliotecas, ymmv).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top