2010-12-13 13 views
0

J'écris une application Java qui effectue diverses actions SVN (validation, copie, etc.) à partir d'une machine distante. J'accède à SVN depuis mon application Java en utilisant l'API SVNKit.Administration SVN à distance

J'ai également besoin d'effectuer certaines actions d'administration, telles que la création d'utilisateurs et de référentiels. Ces actions ne sont pas disponibles via l'API SVNKit ou même l'interface de ligne de commande SVN. Normalement, ceux-ci seront effectués directement sur le serveur SVN, en utilisant svnadmin ou un équivalent graphique.

(Il est possible avec SVNKit à create a local repository, mais je dois créer un référentiel sur une machine distante)

Il semble donc mes options sont:

  1. Programatically connecter de java application à serveur svn en utilisant SSH ou similaire, puis utilisez Runtime.exec() pour exécuter svnadmin

  2. déployer une appli web cation (comme this one) sur la machine qui exécute le serveur svn, puis connecter à partir d'application Java en utilisant HTTP

  3. Assignez une unité de machine application java machine serveur svn (les deux sont des fenêtres machines), puis exécutez svnadmin de l'ancien, fournir le chemin de ce dernier comme argument

Existe-t-il un autre moyen d'effectuer ces tâches d'administration à partir d'une machine distante?

Répondre

0

Comme svnadmin ne fonctionne pas à distance (comme indiqué explicitement dans sa documentation), votre problème n'est pas différent de l'exécution de toute autre application locale à partir d'un ordinateur distant.

BTW, option 3 is not advisable:

Ne pas créer un dépôt Berkeley DB sur un partage ce réseau ne peut pas exister sur un système de fichiers distant tel que NFS, AFS, ou Windows SMB. Berkeley DB requiert que le système de fichiers sous-jacent implémente la sémantique de verrouillage POSIX stricte , et plus important encore, la capacité de mapper des fichiers directement dans la mémoire de processus . Presque aucun réseau systèmes de fichiers offrent ces fonctionnalités. Si vous essayez d'utiliser Berkeley DB sur un partage réseau , les résultats sont vous imprévisibles- peut voir mystérieuses erreurs tout de suite, ou il peut être mois avant de découvrir que votre base de données de référentiel est subtilement corrompu.

+0

Je vais créer un référentiel FSFS, donc cet avertissement n'est pas pertinent (mais merci pour l'info) –