subversion ruby​​绑定可以使用用户存储的凭据吗?

时间:2011-09-21 09:06:11

标签: ruby svn authentication swig

我正在编写一个跨平台的ruby脚本来管理一些subversion存储库。我最初生成了bash命令,但事实证明这对Windows不友好。然后我重写了我的脚本以使用subversion提供的SWIG ruby​​绑定。这与使用ruby 1.8.7的所有必需平台(Ubuntu,Fedora,OS X,Windows)完美配合(就SVN操作而言)。

我使用svn_wc gem来抽象部分绑定,因为我还不了解低级代码。

现在,我的问题是我必须将用户的凭据提供给绑定。 svn_wc 使用this code

ctx.add_simple_prompt_provider(0) do |cred, realm, username, may_save|
  cred.username = @svn_user
  cred.password = @svn_pass
  cred.may_save = false
end

如果@svn_user@svn_pass为零,则绑定会因分段错误而失败:

~/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/svn/util.rb:86:
[BUG] Segmentation fault
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10.8.0]

[1]    4381 abort      my_script.rb

如果我评论这整段代码,我的svn命令就会失败并出现以下错误:

cant get info: subversion/libsvn_ra_neon/util.c:608:
Svn::Error::RaNotAuthorized: OPTIONS of 'https://my.subversion.url':
authorization failed: Could not authenticate to server:
rejected Basic challenge (https://my.subversion.url) (SvnWc::RepoAccessError)

我不知道may_save参数的用途。将其更改为true并且不提供凭据仍会产生分段错误。

我的脚本应该像命令行二进制文件一样使用存储的加密凭据。我不想每次都输入凭据或将它们存储在未加密的配置文件中。

我没有找到关于此的文档。有谁知道它是否可能以及如何?

0 个答案:

没有答案