2010-05-13 12 views
6

Je vois quelques douzaines de gemmes qui se rapportent à svn, mais le peu de documentation que je peux trouver sur chacune d'elles montre qu'elles sont des wrappers de ligne de commande et des helpers divers. (svn-command, svn-hooks, etc.)Les fixations svn ruby ​​sont-elles fournies comme une gemme?

J'ai vu du code dans la nature qui fait des choses comme: require 'svn/core' et SVN.Repos.add (...), mais l'auteur de ce module a tiré ses outils svn ruby ​​via apt-get. Ce ne serait pas une option pour moi, car je développe un outil windows/osx.

This page liste un certain nombre de projets, mais en particulier, j'ai besoin de quelque chose qui permettra d'accéder à un dépôt svn + ssh et je n'ai pas le temps qu'il faudrait pour creuser docs sur une demi-douzaine de projets, en essayant de bootstrap chacun.

Quelle gemme suis-je après? De là, je suis heureux de creuser à travers le code au lieu de documents, mais avec un appel à gem query --name-matches svn --remote retournant environ 30 visites, je dois d'abord le réduire un peu.

Répondre

1

Exactement ce qui était tiré par la commande apt-get? Étaient-ce les fixations elles-mêmes (apt-get install libsvn-ruby) ou les modules ruby? Puisque les liaisons ne sont pas des modules ruby, elles ne peuvent pas être tirées par la commande gem. Vous devez les installer via apt-get ou les télécharger manuellement et les installer dans votre système.

Vous pouvez essayer svn_wc qui nécessite svn_core. Et, je crois svn_core utilise les liaisons SWIG et les liaisons Ruby sont inclus lorsque vous installez Subversion. Vous pouvez également essayer svn_tools qui a été créé par Mark Bates qui a écrit la programmation distribuée avec Ruby. Cependant, je n'ai trouvé aucune documentation sur svn_tools.

J'ai remarqué que le module RSCM, qui est un moyen unifié d'interfaçage avec divers outils SCM, utilise la ligne de commande Subversion. S'il y avait un outil que je pensais utiliser les liaisons API de Subversion, je pensais que ce serait le cas, mais il utilise aussi la ligne de commande Subversion.