Question

J'utilise VisualSVN Server pour héberger un référentiel SVN. Pour certains travaux d'automatisation, j'aimerais pouvoir obtenir des versions spécifiques via la couche http [s].

Je peux obtenir la version HEAD simplement via une requête http [s] au serveur (httpd?) - mais existe-t-il une possibilité de spécifier la révision, par exemple sous forme de chaîne de requête? Je n'arrive pas à le trouver ...

Je ne veux pas faire d’extraction sauf si je peux l’aider, car il y a beaucoup de fichiers dans le dossier spécifique, et je ne les veux pas tous - juste un ou deux.

Était-ce utile?

La solution

Mieux vaut tard que jamais; https: // entier / Chemin / Vers / Dossier / fichier /? p = REV

? p = Rev spécifie la révision

Autres conseils

Je ne sais pas si vous avez déjà trouvé la réponse à cette question, mais sur un serveur svn normal sur Apache, vous pouvez accéder à une révision particulière avec:

http://host/svn-name/!svn/bc/REVISION_NUMBER/path/to/file.ext
  • hôte & amp; REVISION_NUMBER sont évidents
  • /path/to/file.ext est relatif à la racine du référentiel

Je n'ai jamais utilisé visualsvn, votre kilométrage peut donc varier.

Subversion ne documente pas publiquement les Uris qu’elle utilise en interne pour accéder à ces informations. (Et là où cela est documenté, il est explicitement indiqué que cela peut changer dans les versions futures)

Pour accéder à ces informations sur le Web, vous pouvez utiliser un visualiseur Web (par exemple, websvn, viewvc ).

Si vous souhaitez y accéder à partir de votre propre programme, vous pouvez également utiliser une liaison client telle que 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);
}

[Mise à jour le 31/12/2008 - Une des prochaines versions de Subversion commencera à documenter les URL publiques que vous pouvez utiliser pour récupérer les anciennes versions.]

La page d'aide pour l'interface Web VisualSVN suggère d'utiliser une adresse au format semblable à celui-ci:

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

L'essentiel semble être le numéro de révision du référentiel préfixé par 'r' . Aucune autre réponse ici ne mentionne cela, et en utilisant des adresses formatées de la sorte, j’ai été en mesure de visualiser une révision spécifique d’un fichier source à partir de notre serveur VisualSVN.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top