[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Help. The API docs are fragmentlike, incoherent and confusing.

From: <nkowalsky_at_gmx.de>
Date: 2004-06-02 14:20:49 CEST

MSVC .NET 2003
Subversion 1.0.3/1.0.4

Hi,

I have massive problems using the Subversion API.

There are only fragmentlike docs for the API I've found:
I've studied the main doc by Ben Collins-Sussman, Brian W. Fitzpatrick, C.
Michael Pilato. But the main point is focused on common users.
Then I've read Garrett Rooney's Using the SVN API.
The hint to read the source code of the SVN client source codes is
well-meant. The sources are too complicated and disturbing.
The docs lack coherence and are totally confusing, e.g. pool concept,
authorizing.
I couldn't found any coherent examples for the API beginner.

I want only use a simple repository on a drive without password protection
and user administration.
I gleaned from the various sources a fragmented basic understanding and
wrote following program:
creating a repository, checkout and add a file (test.txt).
While adding the file the API crashes the program.

code snippet:

svn_error_t* error;

apr_pool_t* createPool = svn_pool_create(NULL);
svn_repos_t* repos;
error = svn_repos_create(&repos, "c:/temp/repos", NULL, NULL, NULL, NULL,
createPool);

apr_pool_t* ctxPool = svn_pool_create(NULL);
svn_client_ctx_t* ctx;
error = svn_client_create_context(&ctx, ctxPool);

apr_pool_t* providerArrayPool = svn_pool_create(NULL);
apr_array_header_t *providers = apr_array_make (providerArrayPool, 1, sizeof
(svn_auth_provider_object_t *));

apr_pool_t* providerPool = svn_pool_create(NULL);
svn_auth_provider_object_t* provider;
svn_client_get_simple_provider(&provider, providerPool);
*(svn_auth_provider_object_t **)apr_array_push (providers) = provider;

apr_pool_t* batonPool = svn_pool_create(NULL);
svn_auth_baton_t *auth_baton;
svn_auth_open (&auth_baton, providers, batonPool);
ctx->auth_baton = auth_baton;

apr_pool_t* checkoutPool = svn_pool_create(NULL);
svn_revnum_t rev;
svn_opt_revision_t revision;
revision.kind = svn_opt_revision_head;
error = svn_client_checkout(&rev, "file:///c:/temp/repos",
"c:/temp/workcopy", &revision, true, ctx, checkoutPool);

apr_pool_t* addPool = svn_pool_create(NULL);
error = svn_client_add("c:/temp/workcopy/test.txt", false, ctx, addPool);

Thank you.

Best regards
N. Kowalsky

-- 
"Sie haben neue Mails!" - Die GMX Toolbar informiert Sie beim Surfen!
Jetzt aktivieren unter http://www.gmx.net/info
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jun 3 16:01:47 2004

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.