Pergunta

Estou usando o VisualSVN Server para hospedar um repo SVN e, para algum trabalho de automação, gostaria de obter versões específicas através da camada HTTP [s].

Eu posso obter a versão principal simplesmente por meio de uma solicitação HTTP [s] ao servidor (httpd?) - mas existe alguma capacidade de especificar a revisão, talvez como uma string de consulta? Eu não consigo encontrá-lo...

Não quero fazer uma compra, a menos que eu possa ajudá -lo, pois há muitos arquivos na pasta específica, e não quero todos eles - apenas um ou dois.

Foi útil?

Solução

Antes tarde do que nunca;https: // integral/path/to/pasta/file/? P = Rev

? P = Rev especifica a revisão

Outras dicas

Não sei se você já encontrou a resposta para esta pergunta, mas no servidor SVN regular no Apache, você pode obter uma revisão específica com:

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
  • host & revision_number são óbvios
  • /path/to/file.ext é relativo à raiz do repo

Eu nunca usei o VisualSVN para que sua milhagem possa variar.

A subversão não documenta publicamente os URIs que ele usa internamente para acessar essas informações. (E onde está documentado, é explicitamente declarado que isso pode mudar em versões futuras)

Para acessar essas informações na web, você pode usar um visualizador da web (por exemplo, webvn, Viewvc).

Se você deseja acessá -lo em seu próprio programa, também pode usar uma ligação do cliente como o Sharpsvn.

using (SvnClient client = new SvnClient())
using (FileStream fs = File.Create("c:\\temp\\file.txt"))
{
    // Perform svn cat http://svn.collab.net/svn/repos/trunk/COMMITTERS -r 23456 
    //                    > file.txt

    SvnCatArgs a = new SvnCatArgs();
    a.Revision = 23456;
    client.Cat(new Uri("http://svn.collab.net/svn/repos/trunk/COMMITTERS"), a, fs);
}

Atualização 2008-12-31: Uma das próximas versões do Subversão começará a documentar URLs públicos que você pode usar para recuperar versões antigas.

Este:

Uso de webdav em subversão

deve ajudar.

o Página de ajuda para a interface da web visualsvn sugere o uso de um endereço formatado como um deles:

link to r1484 commit in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/commit/r1484/

link to the current content of the trunk/context.c file in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/view/head/trunk/context.c

link to the content of trunk/context.c file at revision r2222 in the serf's project repository:
https://demo-server.visualsvn.com/!/#serf/view/r2222/trunk/context.c

O crucial parece ser o número de revisão do Repo prefixado por 'r'. Nenhuma das outras respostas aqui menciona isso, e usando endereços formatados assim, pude visualizar uma revisão específica de um arquivo de origem do nosso servidor VisualSVN.

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