Obteniendo una revisión específica a través de http con VisualSVN Server
-
03-07-2019 - |
Pregunta
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].
Puedo obtener la versión HEAD simplemente a través de una solicitud http [s] 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 a todos, solo uno o dos.
Solución
Más vale tarde que nunca; https: // whole / Path / To / Folder / file /? p = REV
? p = Rev especifica la revisión
Otros consejos
No sé si ya ha encontrado la respuesta a esta pregunta pero en el servidor svn normal en apache puede obtener una revisión particular con:
http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
- host & amp; REVISION_NUMBER son obvias
- /path/to/file.ext es relativo a la raíz del repositorio
Nunca he usado visualsvn, por lo que su kilometraje puede variar.
Subversion no documenta públicamente el Uris que usa internamente para acceder a esa información. (Y donde está documentado, se declara explícitamente que esto puede cambiar en futuras versiones)
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 usar 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á a documentar las URL públicas que puede usar para recuperar versiones antiguas.]
La página de ayuda para la Interfaz Web VisualSVN sugiere utilizar una dirección formateada como una de estas:
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
Lo crucial parece ser el número de revisión del repositorio con el prefijo 'r' . Ninguna de las otras respuestas aquí mencionan eso, y usando direcciones formateadas como esta pude ver una revisión específica de un archivo fuente de nuestro servidor VisualSVN.