Ottenere una revisione specifica via http con VisualSVN Server
-
03-07-2019 - |
Domanda
Sto usando VisualSVN Server per ospitare un repository SVN e, per alcuni lavori di automazione, mi piacerebbe poter ottenere versioni specifiche tramite il livello http [s].
Posso ottenere la versione HEAD semplicemente tramite una richiesta http [s] al server (httpd?) - ma c'è qualche possibilità di specificare la revisione, forse come una stringa di query? Non riesco a trovarlo ...
Non voglio fare un checkout se non posso aiutarlo, poiché ci sono molti file nella cartella specifica e non li voglio tutti - solo uno o due.
Soluzione
Meglio tardi che mai; https: // whole / Path / To / Folder / file /? p = REV
? p = Rev specifica la revisione
Altri suggerimenti
Non so se hai già trovato la risposta a questa domanda ma nel normale server svn su apache puoi arrivare a una revisione particolare con:
http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
- host & amp; REVISION_NUMBER sono evidenti
- /path/to/file.ext è relativo alla radice repo
Non ho mai usato visualsvn quindi il tuo chilometraggio può variare.
Subversion non documenta pubblicamente l'uris che utilizza internamente per accedere a tali informazioni. (E dove è documentato, si afferma esplicitamente che ciò può cambiare nelle versioni future)
Per accedere a queste informazioni sul Web è possibile utilizzare un visualizzatore Web (ad esempio websvn, viewvc ).
Se si desidera accedervi dal proprio programma, è possibile utilizzare anche un'associazione client come 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);
}
[Aggiornamento 2008-12-31: una delle prossime versioni di Subversion inizierà a documentare gli URL pubblici che è possibile utilizzare per recuperare le vecchie versioni.]
La pagina della guida per l'interfaccia Web di VisualSVN suggerisce di utilizzare un indirizzo formattato come uno di questi:
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
La cosa cruciale sembra essere il numero di revisione del repository preceduto da 'r' . Nessuna delle altre risposte qui menziona questo, e usando indirizzi formattati in questo modo sono stato in grado di visualizzare una revisione specifica di un file sorgente dal nostro server VisualSVN.