Subversion
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
subversion
include
svn_client.h
Go to the documentation of this file.
1
/**
2
* @copyright
3
* ====================================================================
4
* Licensed to the Apache Software Foundation (ASF) under one
5
* or more contributor license agreements. See the NOTICE file
6
* distributed with this work for additional information
7
* regarding copyright ownership. The ASF licenses this file
8
* to you under the Apache License, Version 2.0 (the
9
* "License"); you may not use this file except in compliance
10
* with the License. You may obtain a copy of the License at
11
*
12
* http://www.apache.org/licenses/LICENSE-2.0
13
*
14
* Unless required by applicable law or agreed to in writing,
15
* software distributed under the License is distributed on an
16
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17
* KIND, either express or implied. See the License for the
18
* specific language governing permissions and limitations
19
* under the License.
20
* ====================================================================
21
* @endcopyright
22
*
23
* @file svn_client.h
24
* @brief Subversion's client library
25
*
26
* Requires: The working copy library and repository access library.
27
* Provides: Broad wrappers around working copy library functionality.
28
* Used By: Client programs.
29
*/
30
31
#ifndef SVN_CLIENT_H
32
#define SVN_CLIENT_H
33
34
#include <apr.h>
35
#include <apr_pools.h>
36
#include <apr_hash.h>
37
#include <apr_tables.h>
38
#include <apr_getopt.h>
39
#include <apr_file_io.h>
40
#include <apr_time.h>
41
42
#include "
svn_types.h
"
43
#include "
svn_string.h
"
44
#include "
svn_wc.h
"
45
#include "
svn_opt.h
"
46
#include "
svn_ra.h
"
47
#include "
svn_diff.h
"
48
#include "
svn_auth.h
"
49
50
#ifdef __cplusplus
51
extern
"C"
{
52
#endif
/* __cplusplus */
53
54
55
56
/**
57
* Get libsvn_client version information.
58
*
59
* @since New in 1.1.
60
*/
61
const
svn_version_t
*
62
svn_client_version
(
void
);
63
64
/** Client supporting functions
65
*
66
* @defgroup clnt_support Client supporting subsystem
67
*
68
* @{
69
*/
70
71
72
/*** Authentication stuff ***/
73
74
/** The new authentication system allows the RA layer to "pull"
75
* information as needed from libsvn_client.
76
*
77
* @deprecated Replaced by the svn_auth_* functions.
78
* @see auth_fns
79
*
80
* @defgroup auth_fns_depr (deprecated) AuthZ client subsystem
81
*
82
* @{
83
*/
84
85
/** Create and return @a *provider, an authentication provider of type
86
* svn_auth_cred_simple_t that gets information by prompting the user
87
* with @a prompt_func and @a prompt_baton. Allocate @a *provider in
88
* @a pool.
89
*
90
* If both #SVN_AUTH_PARAM_DEFAULT_USERNAME and
91
* #SVN_AUTH_PARAM_DEFAULT_PASSWORD are defined as runtime
92
* parameters in the @c auth_baton, then @a *provider will return the
93
* default arguments when svn_auth_first_credentials() is called. If
94
* svn_auth_first_credentials() fails, then @a *provider will
95
* re-prompt @a retry_limit times (via svn_auth_next_credentials()).
96
* For infinite retries, set @a retry_limit to value less than 0.
97
*
98
* @deprecated Provided for backward compatibility with the 1.3 API.
99
* Use svn_auth_get_simple_prompt_provider() instead.
100
*/
101
SVN_DEPRECATED
102
void
103
svn_client_get_simple_prompt_provider
(
104
svn_auth_provider_object_t
**provider,
105
svn_auth_simple_prompt_func_t
prompt_func,
106
void
*prompt_baton,
107
int
retry_limit,
108
apr_pool_t *pool);
109
110
111
/** Create and return @a *provider, an authentication provider of type
112
* #svn_auth_cred_username_t that gets information by prompting the
113
* user with @a prompt_func and @a prompt_baton. Allocate @a *provider
114
* in @a pool.
115
*
116
* If #SVN_AUTH_PARAM_DEFAULT_USERNAME is defined as a runtime
117
* parameter in the @c auth_baton, then @a *provider will return the
118
* default argument when svn_auth_first_credentials() is called. If
119
* svn_auth_first_credentials() fails, then @a *provider will
120
* re-prompt @a retry_limit times (via svn_auth_next_credentials()).
121
* For infinite retries, set @a retry_limit to value less than 0.
122
*
123
* @deprecated Provided for backward compatibility with the 1.3 API.
124
* Use svn_auth_get_username_prompt_provider() instead.
125
*/
126
SVN_DEPRECATED
127
void
128
svn_client_get_username_prompt_provider
(
129
svn_auth_provider_object_t
**provider,
130
svn_auth_username_prompt_func_t
prompt_func,
131
void
*prompt_baton,
132
int
retry_limit,
133
apr_pool_t *pool);
134
135
136
/** Create and return @a *provider, an authentication provider of type
137
* #svn_auth_cred_simple_t that gets/sets information from the user's
138
* ~/.subversion configuration directory. Allocate @a *provider in
139
* @a pool.
140
*
141
* If a default username or password is available, @a *provider will
142
* honor them as well, and return them when
143
* svn_auth_first_credentials() is called. (see
144
* #SVN_AUTH_PARAM_DEFAULT_USERNAME and #SVN_AUTH_PARAM_DEFAULT_PASSWORD).
145
*
146
* @deprecated Provided for backward compatibility with the 1.3 API.
147
* Use svn_auth_get_simple_provider2() instead.
148
*/
149
SVN_DEPRECATED
150
void
151
svn_client_get_simple_provider
(
svn_auth_provider_object_t
**provider,
152
apr_pool_t *pool);
153
154
155
#if (defined(WIN32) && !defined(__MINGW32__)) || defined(DOXYGEN) || defined(CTYPESGEN) || defined(SWIG)
156
/**
157
* Create and return @a *provider, an authentication provider of type
158
* #svn_auth_cred_simple_t that gets/sets information from the user's
159
* ~/.subversion configuration directory. Allocate @a *provider in
160
* @a pool.
161
*
162
* This is like svn_client_get_simple_provider(), except that, when
163
* running on Window 2000 or newer (or any other Windows version that
164
* includes the CryptoAPI), the provider encrypts the password before
165
* storing it to disk. On earlier versions of Windows, the provider
166
* does nothing.
167
*
168
* @since New in 1.2.
169
* @note This function is only available on Windows.
170
*
171
* @note An administrative password reset may invalidate the account's
172
* secret key. This function will detect that situation and behave as
173
* if the password were not cached at all.
174
*
175
* @deprecated Provided for backward compatibility with the 1.3 API.
176
* Use svn_auth_get_windows_simple_provider() instead.
177
*/
178
SVN_DEPRECATED
179
void
180
svn_client_get_windows_simple_provider
(
svn_auth_provider_object_t
**provider,
181
apr_pool_t *pool);
182
#endif
/* WIN32 && !__MINGW32__ || DOXYGEN || CTYPESGEN || SWIG */
183
184
/** Create and return @a *provider, an authentication provider of type
185
* #svn_auth_cred_username_t that gets/sets information from a user's
186
* ~/.subversion configuration directory. Allocate @a *provider in
187
* @a pool.
188
*
189
* If a default username is available, @a *provider will honor it,
190
* and return it when svn_auth_first_credentials() is called. (see
191
* #SVN_AUTH_PARAM_DEFAULT_USERNAME).
192
*
193
* @deprecated Provided for backward compatibility with the 1.3 API.
194
* Use svn_auth_get_username_provider() instead.
195
*/
196
SVN_DEPRECATED
197
void
198
svn_client_get_username_provider
(
svn_auth_provider_object_t
**provider,
199
apr_pool_t *pool);
200
201
202
/** Create and return @a *provider, an authentication provider of type
203
* #svn_auth_cred_ssl_server_trust_t, allocated in @a pool.
204
*
205
* @a *provider retrieves its credentials from the configuration
206
* mechanism. The returned credential is used to override SSL
207
* security on an error.
208
*
209
* @deprecated Provided for backward compatibility with the 1.3 API.
210
* Use svn_auth_get_ssl_server_trust_file_provider() instead.
211
*/
212
SVN_DEPRECATED
213
void
214
svn_client_get_ssl_server_trust_file_provider
(
215
svn_auth_provider_object_t
**provider,
216
apr_pool_t *pool);
217
218
219
/** Create and return @a *provider, an authentication provider of type
220
* #svn_auth_cred_ssl_client_cert_t, allocated in @a pool.
221
*
222
* @a *provider retrieves its credentials from the configuration
223
* mechanism. The returned credential is used to load the appropriate
224
* client certificate for authentication when requested by a server.
225
*
226
* @deprecated Provided for backward compatibility with the 1.3 API.
227
* Use svn_auth_get_ssl_client_cert_file_provider() instead.
228
*/
229
SVN_DEPRECATED
230
void
231
svn_client_get_ssl_client_cert_file_provider
(
232
svn_auth_provider_object_t
**provider,
233
apr_pool_t *pool);
234
235
236
/** Create and return @a *provider, an authentication provider of type
237
* #svn_auth_cred_ssl_client_cert_pw_t, allocated in @a pool.
238
*
239
* @a *provider retrieves its credentials from the configuration
240
* mechanism. The returned credential is used when a loaded client
241
* certificate is protected by a passphrase.
242
*
243
* @deprecated Provided for backward compatibility with the 1.3 API.
244
* Use svn_auth_get_ssl_client_cert_pw_file_provider2() instead.
245
*/
246
SVN_DEPRECATED
247
void
248
svn_client_get_ssl_client_cert_pw_file_provider
(
249
svn_auth_provider_object_t
**provider,
250
apr_pool_t *pool);
251
252
253
/** Create and return @a *provider, an authentication provider of type
254
* #svn_auth_cred_ssl_server_trust_t, allocated in @a pool.
255
*
256
* @a *provider retrieves its credentials by using the @a prompt_func
257
* and @a prompt_baton. The returned credential is used to override
258
* SSL security on an error.
259
*
260
* @deprecated Provided for backward compatibility with the 1.3 API.
261
* Use svn_auth_get_ssl_server_trust_prompt_provider() instead.
262
*/
263
SVN_DEPRECATED
264
void
265
svn_client_get_ssl_server_trust_prompt_provider
(
266
svn_auth_provider_object_t
**provider,
267
svn_auth_ssl_server_trust_prompt_func_t
prompt_func,
268
void
*prompt_baton,
269
apr_pool_t *pool);
270
271
272
/** Create and return @a *provider, an authentication provider of type
273
* #svn_auth_cred_ssl_client_cert_t, allocated in @a pool.
274
*
275
* @a *provider retrieves its credentials by using the @a prompt_func
276
* and @a prompt_baton. The returned credential is used to load the
277
* appropriate client certificate for authentication when requested by
278
* a server. The prompt will be retried @a retry_limit times.
279
* For infinite retries, set @a retry_limit to value less than 0.
280
*
281
* @deprecated Provided for backward compatibility with the 1.3 API.
282
* Use svn_auth_get_ssl_client_cert_prompt_provider() instead.
283
*/
284
SVN_DEPRECATED
285
void
286
svn_client_get_ssl_client_cert_prompt_provider
(
287
svn_auth_provider_object_t
**provider,
288
svn_auth_ssl_client_cert_prompt_func_t
prompt_func,
289
void
*prompt_baton,
290
int
retry_limit,
291
apr_pool_t *pool);
292
293
294
/** Create and return @a *provider, an authentication provider of type
295
* #svn_auth_cred_ssl_client_cert_pw_t, allocated in @a pool.
296
*
297
* @a *provider retrieves its credentials by using the @a prompt_func
298
* and @a prompt_baton. The returned credential is used when a loaded
299
* client certificate is protected by a passphrase. The prompt will
300
* be retried @a retry_limit times. For infinite retries, set @a retry_limit
301
* to value less than 0.
302
*
303
* @deprecated Provided for backward compatibility with the 1.3 API.
304
* Use svn_auth_get_ssl_client_cert_pw_prompt_provider() instead.
305
*/
306
SVN_DEPRECATED
307
void
308
svn_client_get_ssl_client_cert_pw_prompt_provider
(
309
svn_auth_provider_object_t
**provider,
310
svn_auth_ssl_client_cert_pw_prompt_func_t
prompt_func,
311
void
*prompt_baton,
312
int
retry_limit,
313
apr_pool_t *pool);
314
315
/** @} */
316
317
/**
318
* Revisions and Peg Revisions
319
*
320
* @defgroup clnt_revisions Revisions and Peg Revisions
321
*
322
* A brief word on operative and peg revisions.
323
*
324
* If the kind of the peg revision is #svn_opt_revision_unspecified, then it
325
* defaults to #svn_opt_revision_head for URLs and #svn_opt_revision_working
326
* for local paths.
327
*
328
* For deeper insight, please see the
329
* <a href="http://svnbook.red-bean.com/nightly/en/svn.advanced.pegrevs.html">
330
* Peg and Operative Revisions</a> section of the Subversion Book.
331
*/
332
333
/**
334
* Commit operations
335
*
336
* @defgroup clnt_commit Client commit subsystem
337
*
338
* @{
339
*/
340
341
/** This is a structure which stores a filename and a hash of property
342
* names and values.
343
*
344
* @deprecated Provided for backward compatibility with the 1.4 API.
345
*/
346
typedef
struct
svn_client_proplist_item_t
347
{
348
/** The name of the node on which these properties are set. */
349
svn_stringbuf_t
*
node_name
;
350
351
/** A hash of (const char *) property names, and (svn_string_t *) property
352
* values. */
353
apr_hash_t *
prop_hash
;
354
355
}
svn_client_proplist_item_t
;
356
357
/**
358
* The callback invoked by svn_client_proplist4(). Each invocation
359
* provides the regular and/or inherited properties of @a path, which is
360
* either a working copy path or a URL. If @a prop_hash is not @c NULL, then
361
* it maps explicit <tt>const char *</tt> property names to
362
* <tt>svn_string_t *</tt> explicit property values. If @a inherited_props
363
* is not @c NULL, then it is a depth-first ordered array of
364
* #svn_prop_inherited_item_t * structures representing the
365
* properties inherited by @a path. Use @a scratch_pool for all temporary
366
* allocations.
367
*
368
* The #svn_prop_inherited_item_t->path_or_url members of the
369
* #svn_prop_inherited_item_t * structures in @a inherited_props are
370
* URLs if @a path is a URL or if @a path is a working copy path but the
371
* property represented by the structure is above the working copy root (i.e.
372
* the inherited property is from the cache). In all other cases the
373
* #svn_prop_inherited_item_t->path_or_url members are absolute working copy
374
* paths.
375
*
376
* @since New in 1.8.
377
*/
378
typedef
svn_error_t
*(*svn_proplist_receiver2_t)(
379
void
*baton,
380
const
char
*path,
381
apr_hash_t *prop_hash,
382
apr_array_header_t *inherited_props,
383
apr_pool_t *scratch_pool);
384
385
/**
386
* Similar to #svn_proplist_receiver2_t, but doesn't return inherited
387
* properties.
388
*
389
* @deprecated Provided for backward compatibility with the 1.7 API.
390
*
391
* @since New in 1.5.
392
*/
393
typedef
svn_error_t
*(*svn_proplist_receiver_t)(
394
void
*baton,
395
const
char
*path,
396