2008-10-01 13 views
30

Estoy usando VisualSVN Server para alojar un repositorio SVN, y para algunos trabajos de automatización, me gustaría poder obtener versiones específicas a través de la capa http [s].Obtener una revisión específica a través de http con el Servidor VisualSVN

Puedo obtener la versión de HEAD simplemente a través de una solicitud de http al servidor (httpd?) - pero ¿hay alguna posibilidad de especificar la revisión, tal vez como una cadena de consulta? Parece que no puedo encontrarlo ...

No quiero hacer un pago a menos que pueda evitarlo, ya que hay muchos archivos en la carpeta específica, y no los quiero todos - solo uno o dos.

Respuesta

4

Subversion no documenta públicamente el Uris que usa internamente para acceder a esa información. (Y donde está documentado, se establece explícitamente que esto puede cambiar en versiones futuras)

Para acceder a esta información en la web, puede usar un visor web (por ejemplo, websvn, viewvc).

Si desea acceder desde su propio programa, también puede utilizar un enlace de cliente como 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); 
} 

[Actualización 2008-12-31: Una de las próximas versiones de Subversion comenzará documentar las direcciones URL públicas se pueden utilizar para recuperar versiones anteriores.]

+0

interesante - muy, muy interesante. Voy a dar un giro. –

+0

Tenga en cuenta que las versiones más recientes de Subversion ahora tienen una sintaxis de url público para recuperar revisiones antiguas. El @revision se puede especificar con? P = revision y an -r rev usando? R = rev. (Y estos valores pueden, por supuesto, combinarse) –

6

No sé si ya has encontrado la respuesta a esta pregunta, pero en el servidor sVN regular en Apache se puede llegar a una revisión en particular con:

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext 
  • anfitrión & REVISION_NUMBER son evidentes
  • /path/to/file.ext es relativo a la raíz de recompra

nunca he utilizado visualsvn para que su experiencia puede variar.

+0

Interesante; Voy a echar un vistazo –

+1

VisualSVN no usa ese formato. Ver la respuesta de @ chhenni arriba. –

+0

Esto parece lo que buscaba: cómo hacerlo sin algo como visualsvn. No estoy seguro de seguir la parte '! Svn/bc /'. ¿Cómo tomaría una revisión específica de una ruta como esta 'http: // svn.apache.org/repos/asf/httpd/site/trunk/content/index.mdtext' –

Cuestiones relacionadas