svn_client_checkout3 завершает работу с EXC_BAD_ACCESS

#c #svn #segmentation-fault #svn-client

#c #svn #ошибка сегментации #svn-клиент

Вопрос:

Я хочу извлечь рабочую копию:

 apr_pool_t *pool = NULL;
apr_pool_create(amp;pool, NULL);
svn_client_ctx_t *context = NULL;
svn_client_create_context(amp;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
                     amp;revision,
                     amp;revision,
                     svn_depth_infinity,
                     TRUE,
                     FALSE,
                     context,
                     pool);
apr_pool_destroy(pool);
  

Он вылетает при svn_client_checkout3 с EXC_BAD_ACCESS (вероятно, ошибка сегментации). Я прочитал документацию, но не могу понять, что я делаю неправильно.

Что может быть причиной этой ошибки?

Ответ №1:

Я предполагаю, что вы инициализировали APR, svn_utf, svn_fs, svn_ra и т.д. Перед этим фрагментом кода?

В репозитории Subversion есть несколько примеров кода, которые показывают, как следует выполнять инициализацию и обрабатывать запросы обратного вызова для таких вещей, как авторизация.

Если вы хотите избежать всего этого, я бы рекомендовал взглянуть на некоторые привязки более высокого уровня, которые существуют для Python (часть Subversion), Java (JavaHL и SVNKit) и .Net (SharpSvn). Или, если вы просто хотите выполнить одну команду, вы могли бы просто выложить на svn .