2

我想签出一份工作副本:

apr_pool_t *pool = NULL;
apr_pool_create(&pool, NULL);
svn_client_ctx_t *context = NULL;
svn_client_create_context(&context, pool);
svn_opt_revision_t revision;
revision.kind = svn_opt_revision_head;
svn_client_checkout3(NULL,
                     repo.URL.absoluteString.UTF8String, // repo URL
                     localURL.path.UTF8String, // local path
                     &revision,
                     &revision,
                     svn_depth_infinity,
                     TRUE,
                     FALSE,
                     context,
                     pool);
apr_pool_destroy(pool);

它崩溃svn_client_checkout3EXC_BAD_ACCESS(可能是分段错误)。我阅读了文档,但我无法找出我做错了什么。

此错误的原因可能是什么?

4

1 回答 1

2

我假设您在此代码段之前初始化了 APR、svn_utf、svn_fs、svn_ra 等?

Subversion 存储库中有一些代码示例,它们显示了您应该如何执行初始化以及处理诸如授权之类的回调提示。

如果您想避免这一切,我建议您查看 Python(Subversion 的一部分)、Java(JavaHL 和 SvnKit)和 .Net(SharpSvn)存在的一些更高级别的绑定。或者,如果您只想执行一个命令,您可以直接使用svn.

于 2011-11-16T11:39:18.793 回答