~ubuntu-branches/ubuntu/oneiric/monodevelop/oneiric

« back to all changes in this revision

Viewing changes to src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/LibSvnClient.cs

  • Committer: Bazaar Package Importer
  • Author(s): Jo Shields
  • Date: 2011-06-27 17:03:13 UTC
  • mto: (1.8.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 54.
  • Revision ID: james.westby@ubuntu.com-20110627170313-6cvz3s19x6e9hqe9
ImportĀ upstreamĀ versionĀ 2.5.92+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// /cvs/monodevelop/Extras/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/LibSvnClient.cs created with MonoDevelop
2
 
// User: fejj at 12:12 PMĀ 5/31/2007
3
 
//
4
 
 
5
 
using System;
6
 
using System.IO;
7
 
using System.Threading;
8
 
using System.Collections;
9
 
using System.Runtime.InteropServices;
10
 
 
11
 
using MonoDevelop.Core;
12
 
using MonoDevelop.VersionControl.Subversion.Gui;
13
 
 
14
 
 
15
 
namespace MonoDevelop.VersionControl.Subversion.Unix {
16
 
        public abstract class LibSvnClient {
17
 
                public LibSvnClient ()
18
 
                {
19
 
                        client_version ();
20
 
                }
21
 
                
22
 
                public static LibSvnClient GetLib ()
23
 
                {
24
 
                        try {
25
 
                                return new LibSvnClient0 ();
26
 
                        } catch {}
27
 
                        
28
 
                        try {
29
 
                                return new LibSvnClient1 ();
30
 
                        } catch {}
31
 
                        
32
 
                        return null;
33
 
                }
34
 
                
35
 
                public abstract void config_ensure (string config_dir, IntPtr pool);
36
 
                public abstract void config_get_config (ref IntPtr cfg_hash, string config_dir, IntPtr pool);
37
 
                public abstract void auth_open (out IntPtr auth_baton, IntPtr providers, IntPtr pool);
38
 
                public abstract void auth_set_parameter (IntPtr auth_baton, string name, IntPtr value);
39
 
                public abstract IntPtr auth_get_parameter (IntPtr auth_baton, string name);
40
 
                public abstract void client_get_simple_provider (IntPtr item, IntPtr pool);
41
 
                public abstract void client_get_simple_prompt_provider (IntPtr item, svn_auth_simple_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool);
42
 
                public abstract void client_get_username_provider (IntPtr item, IntPtr pool);
43
 
                public abstract void client_get_username_prompt_provider (IntPtr item, svn_auth_username_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool);
44
 
                public abstract void client_get_ssl_server_trust_file_provider (IntPtr item, IntPtr pool);
45
 
                public abstract void client_get_ssl_client_cert_file_provider (IntPtr item, IntPtr pool);
46
 
                public abstract void client_get_ssl_client_cert_pw_file_provider (IntPtr item, IntPtr pool);
47
 
                public abstract void client_get_ssl_server_trust_prompt_provider (IntPtr item, svn_auth_ssl_server_trust_prompt_func_t prompt_func, IntPtr prompt_batton, IntPtr pool);
48
 
                public abstract void client_get_ssl_client_cert_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool);
49
 
                public abstract void client_get_ssl_client_cert_pw_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool);
50
 
                
51
 
                public abstract IntPtr client_version ();
52
 
                
53
 
                public abstract IntPtr client_create_context (out IntPtr ctx, IntPtr pool);
54
 
                
55
 
                public abstract IntPtr client_ls (out IntPtr dirents, string path_or_url,
56
 
                                                  ref Rev revision, int recurse, IntPtr ctx,
57
 
                                                  IntPtr pool);
58
 
                
59
 
                public abstract IntPtr client_status (IntPtr result_rev, string path, ref Rev revision,
60
 
                                                      svn_wc_status_func_t status_func, IntPtr status_baton,
61
 
                                                      int descend, int get_all, int update, int no_ignore,
62
 
                                                      IntPtr ctx, IntPtr pool);
63
 
                
64
 
                public abstract IntPtr client_log (IntPtr apr_array_header_t_targets,
65
 
                                                   ref Rev rev_start, ref Rev rev_end,
66
 
                                                   int discover_changed_paths,
67
 
                                                   int strict_node_history,
68
 
                                                   svn_log_message_receiver_t receiver,
69
 
                                                   IntPtr receiver_baton,
70
 
                                                   IntPtr ctx, IntPtr pool);
71
 
                
72
 
                public abstract IntPtr time_from_cstring (out long aprtime, string time, IntPtr pool);
73
 
                
74
 
                public abstract IntPtr client_url_from_path (ref IntPtr url, string path_or_url, IntPtr pool);
75
 
                
76
 
                public abstract IntPtr client_cat2 (IntPtr stream, string path_or_url,
77
 
                                                    ref Rev peg_revision,
78
 
                                                    ref Rev revision,
79
 
                                                    IntPtr ctx, IntPtr pool);
80
 
                
81
 
                public abstract IntPtr stream_create (IntPtr baton, IntPtr pool);
82
 
                
83
 
                //public abstract IntPtr stream_set_read (IntPtr stream, svn_readwrite_fn_t reader);
84
 
                
85
 
                public abstract IntPtr stream_set_write (IntPtr stream, svn_readwrite_fn_t writer);
86
 
                
87
 
                public abstract IntPtr client_update (IntPtr result_rev, string path, ref Rev revision,
88
 
                                                      int recurse, IntPtr ctx, IntPtr pool);
89
 
                
90
 
                public abstract IntPtr client_delete (ref IntPtr commit_info_p, IntPtr apr_array_header_t_targets, 
91
 
                                                      int force, IntPtr ctx, IntPtr pool);
92
 
                
93
 
                public abstract IntPtr client_add3 (string path, int recurse, int force, int no_ignore, IntPtr ctx, IntPtr pool);
94
 
                
95
 
                public abstract IntPtr client_commit (ref IntPtr svn_client_commit_info_t_commit_info,
96
 
                                                      IntPtr apr_array_header_t_targets, int nonrecursive,
97
 
                                                      IntPtr ctx, IntPtr pool);
98
 
                
99
 
                public abstract IntPtr client_revert (IntPtr apr_array_header_t_targets, int recursive,
100
 
                                                      IntPtr ctx, IntPtr pool);
101
 
                
102
 
                public abstract IntPtr client_resolved (string path, int recursive, IntPtr ctx, IntPtr pool);
103
 
                
104
 
                public abstract IntPtr client_move (ref IntPtr commit_info_p, string srcPath, ref Rev rev,
105
 
                                                    string destPath, int force, IntPtr ctx, IntPtr pool);
106
 
                
107
 
                public abstract IntPtr client_checkout (IntPtr result_rev, string url, string path, ref Rev rev, 
108
 
                                                        int recurse, IntPtr ctx, IntPtr pool);
109
 
                
110
 
                public abstract IntPtr client_mkdir2 (ref IntPtr commit_info, IntPtr apr_array_paths, IntPtr ctx, IntPtr pool);
111
 
                
112
 
                public abstract IntPtr client_diff (IntPtr diff_options, string path1, ref Rev revision1,
113
 
                                                    string path2, ref Rev revision2, int recurse,
114
 
                                                    int ignore_ancestry, int no_diff_deleted,
115
 
                                                    IntPtr outfile, IntPtr errfile,
116
 
                                                    IntPtr ctx, IntPtr pool);
117
 
                
118
 
                
119
 
                public abstract IntPtr client_merge_peg2 (string source,
120
 
                                                          ref Rev revision1,
121
 
                                                          ref Rev revision2,
122
 
                                                          ref Rev peg_revision,
123
 
                                                          string target_wcpath,
124
 
                                                          bool recurse,
125
 
                                                          bool ignore_ancestry,
126
 
                                                          bool force,
127
 
                                                          bool dry_run,
128
 
                                                          IntPtr merge_options,
129
 
                                                          IntPtr ctx,
130
 
                                                          IntPtr pool);
131
 
                
132
 
                public abstract IntPtr client_lock (IntPtr apr_array_header_t_targets, string comment, int steal_lock, IntPtr ctx, IntPtr pool);
133
 
                
134
 
                public abstract IntPtr client_unlock (IntPtr apr_array_header_t_targets, int break_lock, IntPtr ctx, IntPtr pool);
135
 
                
136
 
                public abstract IntPtr client_prop_get (out IntPtr value, string name, string target, ref Rev revision, int recurse, IntPtr ctx, IntPtr pool);
137
 
                
138
 
                public abstract IntPtr client_blame (string path, ref Rev rev_start, ref Rev rev_end, svn_client_blame_receiver_t receiver, IntPtr baton, IntPtr ctx, IntPtr pool);
139
 
                
140
 
                public abstract void strerror (int statcode, byte[] buf, int bufsize);
141
 
                
142
 
                public class DirEnt {
143
 
                        public readonly string Name;
144
 
                        public readonly bool IsDirectory;
145
 
                        public readonly long Size;
146
 
                        public readonly bool HasProps;
147
 
                        public readonly int CreatedRevision;
148
 
                        public readonly DateTime Time;
149
 
                        public readonly string LastAuthor;
150
 
                        
151
 
                        static readonly DateTime Epoch = new DateTime (1970, 1, 1);
152
 
                        
153
 
                        internal DirEnt (string name, svn_dirent_t ent)
154
 
                        {
155
 
                                Name = name;
156
 
                                IsDirectory = (ent.kind.ToInt32 () == (int) NodeKind.Dir);
157
 
                                Size = ent.size;
158
 
                                HasProps = ent.has_props != 0;
159
 
                                CreatedRevision = ent.created_rev;
160
 
                                Time = Epoch.AddTicks(ent.time * 10);
161
 
                                LastAuthor = ent.last_author;
162
 
                        }
163
 
                }
164
 
                
165
 
                public class StatusEnt {
166
 
                        public readonly string LocalFilePath;
167
 
                        public readonly string Name;
168
 
                        public readonly int Revision;
169
 
                        public readonly string Url;
170
 
                        public readonly string Repository;
171
 
                        public readonly string RepositoryUuid;
172
 
                        public readonly bool IsDirectory;
173
 
                        public readonly NodeSchedule Schedule;
174
 
                        public readonly bool Copied;
175
 
                        public readonly bool Deleted;
176
 
                        public readonly bool Absent;
177
 
                        public readonly bool Incomplete;
178
 
                        public readonly string CopiedFrom;
179
 
                        public readonly int CopiedFromRevision;
180
 
                        public readonly string ConflictOld;
181
 
                        public readonly string ConflictNew;
182
 
                        public readonly string ConflictWorking;
183
 
                        public readonly string PropertyRejectFile;
184
 
                        public readonly DateTime TextTime;
185
 
                        public readonly DateTime PropTime;
186
 
                        public readonly string Checksum; //(base64 for text-base, or NULL);
187
 
                        public readonly int LastCommitRevision;
188
 
                        public readonly DateTime LastCommitDate;
189
 
                        public readonly string LastCommitAuthor;
190
 
                        
191
 
                        public readonly LibSvnClient.VersionStatus TextStatus;
192
 
                        public readonly LibSvnClient.VersionStatus PropsStatus;
193
 
                        public readonly bool Locked;
194
 
                        public readonly bool Switched;
195
 
                        public readonly LibSvnClient.VersionStatus RemoteTextStatus;
196
 
                        public readonly LibSvnClient.VersionStatus RemotePropsStatus;
197
 
                        public readonly bool RepoLocked;
198
 
                        public readonly bool LockOwned;
199
 
                        public readonly string LockToken;
200
 
                        public readonly string LockOwner;
201
 
                        public readonly string LockComment;
202
 
                        
203
 
                        static readonly DateTime Epoch = new DateTime (1970, 1, 1);
204
 
                        
205
 
                        internal StatusEnt (svn_wc_status_t status, string localpath)
206
 
                        {
207
 
                                LocalFilePath = localpath;
208
 
                                TextStatus = (VersionStatus) status.svn_wc_status_kind_text;
209
 
                                PropsStatus = (VersionStatus) status.svn_wc_status_kind_props;
210
 
                                Locked = status.locked != 0;
211
 
                                Copied = status.copied != 0;
212
 
                                Switched = status.switched != 0;
213
 
                                RemoteTextStatus = (VersionStatus) status.svn_wc_status_kind_text_repo;
214
 
                                RemotePropsStatus = (VersionStatus) status.svn_wc_status_kind_props_repo;
215
 
 
216
 
                                if (status.to_svn_wc_entry_t == IntPtr.Zero)
217
 
                                        return;
218
 
                                
219
 
                                svn_wc_entry_t ent = (svn_wc_entry_t) Marshal.PtrToStructure (status.to_svn_wc_entry_t, typeof (svn_wc_entry_t));
220
 
                                Name = ent.name;
221
 
                                Revision = ent.revision;
222
 
                                Url = ent.url;
223
 
                                Repository = ent.repos;
224
 
                                RepositoryUuid = ent.repos_uuid;
225
 
                                IsDirectory = (ent.node_kind == (int) NodeKind.Dir);
226
 
                                Schedule = (NodeSchedule) ent.schedule;
227
 
                                Copied = ent.copied != 0;
228
 
                                Deleted = ent.deleted != 0;
229
 
                                Absent = ent.absent != 0;
230
 
                                Incomplete = ent.incomplete != 0;
231
 
                                CopiedFrom = ent.copied_from;
232
 
                                CopiedFromRevision = ent.copied_rev;
233
 
                                ConflictOld = ent.conflict_old;
234
 
                                ConflictNew = ent.conflict_new;
235
 
                                ConflictWorking = ent.conflict_working;
236
 
                                PropertyRejectFile = ent.property_reject_file;
237
 
                                TextTime = Epoch.AddTicks (ent.text_time * 10);
238
 
                                PropTime = Epoch.AddTicks (ent.prop_time * 10);
239
 
                                Checksum = ent.checksum;
240
 
                                LastCommitRevision = ent.last_commit_rev;
241
 
                                LastCommitDate = Epoch.AddTicks (ent.last_commit_date * 10);
242
 
                                LastCommitAuthor = ent.last_commit_author;
243
 
                                LockToken = ent.lock_token;
244
 
                                LockOwner = ent.lock_owner;
245
 
                                LockComment = ent.lock_comment;
246
 
                                
247
 
                                if (status.repos_lock != IntPtr.Zero) {
248
 
                                        svn_lock_t repoLock = (svn_lock_t) Marshal.PtrToStructure (status.repos_lock, typeof (svn_lock_t));
249
 
                                        LockToken = repoLock.token;
250
 
                                        LockOwner = repoLock.owner;
251
 
                                        LockComment = repoLock.comment;
252
 
                                        RepoLocked = true;
253
 
                                }
254
 
                                if (LockToken != null) {
255
 
                                        LockOwned = true;
256
 
                                        RepoLocked = true;
257
 
                                }
258
 
                        }
259
 
                }
260
 
                
261
 
                // Native Interop
262
 
                [StructLayout(LayoutKind.Sequential)]
263
 
                public struct svn_client_ctx_t {
264
 
                        public IntPtr auth_baton;
265
 
                        public svn_wc_notify_func_t NotifyFunc;
266
 
                        public IntPtr notify_baton;
267
 
                        public svn_client_get_commit_log_t LogMsgFunc;
268
 
                        public IntPtr logmsg_baton;
269
 
                        public IntPtr config;
270
 
                        public IntPtr cancel_func;
271
 
                        public IntPtr cancel_baton;
272
 
                        public svn_wc_notify_func2_t NotifyFunc2;
273
 
                        public IntPtr notify_baton2;
274
 
                }
275
 
                
276
 
                public struct svn_wc_notify_t {
277
 
                        public IntPtr path;
278
 
                        public LibSvnClient.NotifyAction action;
279
 
                        public LibSvnClient.NodeKind kind;
280
 
                        public IntPtr mime_type;
281
 
                        public IntPtr repo_lock;
282
 
                        public IntPtr err;
283
 
                        public LibSvnClient.NotifyState content_state;
284
 
                        public LibSvnClient.NotifyState prop_state;
285
 
                        public LibSvnClient.NotifyLockState lock_state;
286
 
                        public long revision;
287
 
                        public IntPtr changelist_name;
288
 
                        public IntPtr merge_range;
289
 
                        public IntPtr path_prefix;
290
 
                }
291
 
                
292
 
                public struct svn_error_t {
293
 
                        [MarshalAs (UnmanagedType.SysInt)] public int apr_err;
294
 
                        [MarshalAs (UnmanagedType.LPStr)] public string message;
295
 
                        public IntPtr svn_error_t_child;
296
 
                        public IntPtr pool;
297
 
                        [MarshalAs (UnmanagedType.LPStr)] public string file;
298
 
                        [MarshalAs (UnmanagedType.SysInt)] public int line;
299
 
                }
300
 
                
301
 
                public struct svn_client_commit_info_t {
302
 
                        public int revision;
303
 
                        public IntPtr date;
304
 
                        public IntPtr author;
305
 
                }
306
 
                
307
 
                public struct svn_version_t {
308
 
                        public int major;
309
 
                        public int minor;
310
 
                        public int patch;
311
 
                        public string tag;
312
 
                }
313
 
                
314
 
                public enum NodeKind {
315
 
                        None,
316
 
                        File,
317
 
                        Dir,
318
 
                        Unknown
319
 
                }
320
 
                
321
 
                internal struct svn_dirent_t {
322
 
                        public IntPtr kind;
323
 
                        public long size;
324
 
                        //HACK: [MarshalAs (UnmanagedType.SysInt)] doesn't work on mono, so hack around 32/64 issue
325
 
                        public IntPtr _has_props;
326
 
                        public int has_props {
327
 
                                get {
328
 
                                        return _has_props.ToInt32 ();
329
 
                                }
330
 
                        }
331
 
                        public int created_rev;
332
 
                        public long time; // created
333
 
                        [MarshalAs (UnmanagedType.LPStr)] public string last_author;
334
 
                }
335
 
                
336
 
                public enum NodeSchedule {
337
 
                        Normal,
338
 
                        Add,
339
 
                        Delete,
340
 
                        Replace
341
 
                }
342
 
                
343
 
                public enum VersionStatus {
344
 
                        EMPTY,
345
 
                        None,
346
 
                        Unversioned,
347
 
                        Normal,
348
 
                        Added,
349
 
                        Missing,
350
 
                        Deleted,
351
 
                        Replaced,
352
 
                        Modified,
353
 
                        Merged,
354
 
                        Conflicted,
355
 
                        Ignored,
356
 
                        Obstructed,
357
 
                        External,
358
 
                        Incomplete
359
 
                }
360
 
                
361
 
                public struct svn_wc_entry_t {
362
 
                        public string name;
363
 
                        public int revision;
364
 
                        public string url;
365
 
                        public string repos;
366
 
                        public string repos_uuid;
367
 
                        public int node_kind;
368
 
                        public int schedule;
369
 
                        public int copied;
370
 
                        public int deleted;
371
 
                        public int absent;
372
 
                        public int incomplete;
373
 
                        public string copied_from;
374
 
                        public int copied_rev;
375
 
                        public string conflict_old;
376
 
                        public string conflict_new;
377
 
                        public string conflict_working;
378
 
                        public string property_reject_file;
379
 
                        public long text_time; // or zero
380
 
                        public long prop_time;
381
 
                        public string checksum; //(base64 for text-base, or NULL);
382
 
                        public int last_commit_rev;
383
 
                        public long last_commit_date;
384
 
                        public string last_commit_author;
385
 
                        public string lock_token;
386
 
                        public string lock_owner;
387
 
                        public string lock_comment;
388
 
                }
389
 
                
390
 
                public struct svn_wc_status_t {
391
 
                        public IntPtr to_svn_wc_entry_t;
392
 
                        public int svn_wc_status_kind_text;      // Field not shown in the documentation
393
 
                        public int svn_wc_status_kind_props;     // Field not shown in the documentation
394
 
                        public int locked;
395
 
                        public int copied;
396
 
                        public int switched;
397
 
                        public int svn_wc_status_kind_text_repo;  // Field not shown in the documentation
398
 
                        public int svn_wc_status_kind_props_repo; // Field not shown in the documentation
399
 
                        public IntPtr repos_lock;
400
 
                }
401
 
                
402
 
                public struct svn_lock_t {
403
 
                        public string path;
404
 
                        public string token;
405
 
                        public string owner;
406
 
                        public string comment;
407
 
                        public int is_dav_comment;
408
 
                }
409
 
                
410
 
                public struct svn_string_t {
411
 
                        public IntPtr data;
412
 
                        public int len;
413
 
                }
414
 
                
415
 
                public struct Rev {
416
 
                        public IntPtr kind;
417
 
                        public svn_opt_revision_value_t value;
418
 
                        
419
 
                        Rev (int kind) {
420
 
                                this.kind = (IntPtr) kind;
421
 
                                value = new svn_opt_revision_value_t ();
422
 
                        }
423
 
                        
424
 
                        public static Rev Number (int rev)
425
 
                        {
426
 
                                Rev r = new Rev(1);
427
 
                                r.value.number = (IntPtr) rev;
428
 
                                return r;
429
 
                        }
430
 
                        
431
 
                        public static explicit operator Rev (SvnRevision rev)
432
 
                        {
433
 
                                Rev r = new Rev ();
434
 
                                r.kind = (IntPtr) rev.Kind;
435
 
                                if (rev.Kind == 1)
436
 
                                        r.value.number = (IntPtr) rev.Rev;
437
 
                                return r;
438
 
                        }
439
 
                        
440
 
                        public static explicit operator Rev (Revision rev)
441
 
                        {
442
 
                                return (Rev) (SvnRevision) rev;
443
 
                        }
444
 
                        
445
 
                        public readonly static Rev Blank = new Rev(0);
446
 
                        public readonly static Rev First = new Rev(1);
447
 
                        public readonly static Rev Committed = new Rev(3);
448
 
                        public readonly static Rev Previous = new Rev(4);
449
 
                        public readonly static Rev Base = new Rev(5);
450
 
                        public readonly static Rev Working = new Rev(6);
451
 
                        public readonly static Rev Head = new Rev(7);
452
 
                }
453
 
                
454
 
                public struct svn_opt_revision_value_t {
455
 
                        public IntPtr number;
456
 
                        public IntPtr date1;
457
 
                        public IntPtr date2;
458
 
                }
459
 
                
460
 
                public struct svn_log_changed_path_t {
461
 
                        public char action;
462
 
                        public string copy_from_path;
463
 
                        public int copy_from_rev;
464
 
                }
465
 
                
466
 
                public struct svn_auth_cred_simple_t {
467
 
                        [MarshalAs (UnmanagedType.LPStr)] public string username;
468
 
                        [MarshalAs (UnmanagedType.LPStr)] public string password;
469
 
                        [MarshalAs (UnmanagedType.SysInt)] public int may_save;
470
 
                }
471
 
                
472
 
                public struct svn_auth_cred_username_t {
473
 
                        [MarshalAs (UnmanagedType.LPStr)] public string username;
474
 
                        [MarshalAs (UnmanagedType.SysInt)] public int may_save;
475
 
                }
476
 
                
477
 
                public struct svn_auth_cred_ssl_server_trust_t {
478
 
                        [MarshalAs (UnmanagedType.SysInt)] public int may_save;
479
 
                        public uint accepted_failures;
480
 
                }
481
 
                
482
 
                public struct svn_auth_cred_ssl_client_cert_t {
483
 
                        [MarshalAs (UnmanagedType.LPStr)] public string cert_file;
484
 
                        [MarshalAs (UnmanagedType.SysInt)] public int may_save;
485
 
                }
486
 
                
487
 
                public struct svn_auth_cred_ssl_client_cert_pw_t {
488
 
                        [MarshalAs (UnmanagedType.LPStr)] public string password;
489
 
                        [MarshalAs (UnmanagedType.SysInt)] public int may_save;
490
 
                }
491
 
                
492
 
                public struct svn_auth_ssl_server_cert_info_t {
493
 
                        [MarshalAs (UnmanagedType.LPStr)] public string hostname;
494
 
                        [MarshalAs (UnmanagedType.LPStr)] public string fingerprint;
495
 
                        [MarshalAs (UnmanagedType.LPStr)] public string valid_from;
496
 
                        [MarshalAs (UnmanagedType.LPStr)] public string valid_until;
497
 
                        [MarshalAs (UnmanagedType.LPStr)] public string issuer_dname;
498
 
                        [MarshalAs (UnmanagedType.LPStr)] public string ascii_cert;
499
 
                }
500
 
                
501
 
                public enum NotifyAction {
502
 
                        Add,
503
 
                        Copy,
504
 
                        Delete,
505
 
                        Restore,
506
 
                        Revert,
507
 
                        FailedRevert,
508
 
                        Resolved,
509
 
                        Skip,
510
 
                        UpdateDelete,
511
 
                        UpdateAdd,
512
 
                        UpdateUpdate,
513
 
                        UpdateCompleted,
514
 
                        UpdateExternal,
515
 
                        StatusCompleted,
516
 
                        StatusExternal,
517
 
                        CommitModified,
518
 
                        CommitAdded,
519
 
                        CommitDeleted,
520
 
                        CommitReplaced,
521
 
                        CommitPostfixTxDelta,
522
 
                        BlameRevision,
523
 
                        Locked,
524
 
                        Unlocked,
525
 
                        FailedLock,
526
 
                        FailedUnlock
527
 
                }
528
 
                
529
 
                public enum NotifyState {
530
 
                        Inapplicable,
531
 
                        Unknown,
532
 
                        Unchanged,
533
 
                        Missing,
534
 
                        Obstructed,
535
 
                        Changed,
536
 
                        Merged,
537
 
                        Conflicted
538
 
                }
539
 
                
540
 
                public enum NotifyLockState {
541
 
                        Unchanged = 2,
542
 
                        Locked = 3,
543
 
                        Unlocked = 4
544
 
                }
545
 
                
546
 
                public delegate void svn_wc_status_func_t (IntPtr baton, IntPtr path, ref svn_wc_status_t status);
547
 
                
548
 
                // Certificate is not yet valid.
549
 
                public const uint SVN_AUTH_SSL_NOTYETVALID = 0x00000001;
550
 
                // Certificate has expired.
551
 
                public const uint SVN_AUTH_SSL_EXPIRED = 0x00000002;
552
 
                // Certificate's CN (hostname) does not match the remote hostname.
553
 
                public const uint SVN_AUTH_SSL_CNMISMATCH = 0x00000004;
554
 
                // Certificate authority is unknown (i.e. not trusted)
555
 
                public const uint SVN_AUTH_SSL_UNKNOWNCA = 0x00000008;
556
 
                // Other failure. This can happen if neon has introduced a new failure bit that we do not handle yet. */
557
 
                public const uint SVN_AUTH_SSL_OTHER = 0x40000000;
558
 
                
559
 
                public delegate IntPtr svn_auth_simple_prompt_func_t (ref IntPtr cred, IntPtr baton, [MarshalAs (UnmanagedType.LPStr)] string realm, [MarshalAs (UnmanagedType.LPStr)] string user_name, [MarshalAs (UnmanagedType.SysInt)] int may_save, IntPtr pool);
560
 
                public delegate IntPtr svn_auth_username_prompt_func_t (ref IntPtr cred, IntPtr baton, [MarshalAs (UnmanagedType.LPStr)] string realm, [MarshalAs (UnmanagedType.SysInt)] int may_save, IntPtr pool);
561
 
                public delegate IntPtr svn_auth_ssl_server_trust_prompt_func_t (ref IntPtr cred, IntPtr baton, [MarshalAs (UnmanagedType.LPStr)] string realm, uint failures, ref svn_auth_ssl_server_cert_info_t cert_info, [MarshalAs (UnmanagedType.SysInt)] int may_save, IntPtr pool);
562
 
                public delegate IntPtr svn_auth_ssl_client_cert_prompt_func_t (ref IntPtr cred, IntPtr baton, [MarshalAs (UnmanagedType.LPStr)] string realm, [MarshalAs (UnmanagedType.SysInt)] int may_save, IntPtr pool);
563
 
                public delegate IntPtr svn_auth_ssl_client_cert_pw_prompt_func_t (ref IntPtr cred, IntPtr baton, [MarshalAs (UnmanagedType.LPStr)] string realm, [MarshalAs (UnmanagedType.SysInt)] int may_save, IntPtr pool);
564
 
                
565
 
                public delegate IntPtr svn_log_message_receiver_t (IntPtr baton, IntPtr apr_hash_changed_paths,
566
 
                                                                   int revision, IntPtr author, IntPtr date,
567
 
                                                                   IntPtr message, IntPtr pool);
568
 
                
569
 
                public delegate IntPtr svn_readwrite_fn_t (IntPtr baton, IntPtr data, ref IntPtr len);
570
 
                
571
 
                public delegate void svn_wc_notify_func_t (IntPtr baton, IntPtr path, NotifyAction action, NodeKind kind,
572
 
                                                           IntPtr mime_type, NotifyState content_state, NotifyState prop_state,
573
 
                                                           long revision);
574
 
                
575
 
                public delegate void svn_wc_notify_func2_t (IntPtr baton, ref svn_wc_notify_t notify, IntPtr pool);
576
 
                
577
 
                public delegate IntPtr svn_client_get_commit_log_t (ref IntPtr log_msg, ref IntPtr tmp_file, IntPtr commit_items,
578
 
                                                                    IntPtr baton, IntPtr pool);
579
 
                
580
 
                public delegate IntPtr svn_client_blame_receiver_t (IntPtr baton, long line_no, int revision, string author, string date, string line, IntPtr pool);
581
 
        }
582
 
        
583
 
        public class LibSvnClient0 : LibSvnClient {
584
 
                private const string svnclientlib = "libsvn_client-1.so.0";
585
 
                
586
 
                public override void config_ensure (string config_dir, IntPtr pool)
587
 
                {
588
 
                        svn_config_ensure (config_dir, pool);
589
 
                }
590
 
                
591
 
                public override void config_get_config (ref IntPtr cfg_hash, string config_dir, IntPtr pool)
592
 
                {
593
 
                        svn_config_get_config (ref cfg_hash, config_dir, pool);
594
 
                }
595
 
                
596
 
                public override void auth_open (out IntPtr auth_baton, IntPtr providers, IntPtr pool)   
597
 
                {
598
 
                        svn_auth_open (out auth_baton, providers, pool);
599
 
                }
600
 
                
601
 
                public override void auth_set_parameter (IntPtr auth_baton, string name, IntPtr value)
602
 
                {
603
 
                        svn_auth_set_parameter (auth_baton, name, value);
604
 
                }
605
 
                
606
 
                public override IntPtr auth_get_parameter (IntPtr auth_baton, string name)
607
 
                {
608
 
                        return svn_auth_get_parameter (auth_baton, name);
609
 
                }
610
 
                
611
 
                public override void client_get_simple_provider (IntPtr item, IntPtr pool)
612
 
                {
613
 
                        svn_client_get_simple_provider (item, pool);
614
 
                }
615
 
                
616
 
                public override void client_get_simple_prompt_provider (IntPtr item, svn_auth_simple_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
617
 
                {
618
 
                        svn_client_get_simple_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
619
 
                }
620
 
                
621
 
                public override void client_get_username_provider (IntPtr item, IntPtr pool)
622
 
                {
623
 
                        svn_client_get_username_provider (item, pool);
624
 
                }
625
 
                
626
 
                public override void client_get_username_prompt_provider (IntPtr item, svn_auth_username_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
627
 
                {
628
 
                        svn_client_get_username_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
629
 
                }
630
 
                
631
 
                public override void client_get_ssl_server_trust_file_provider (IntPtr item, IntPtr pool)
632
 
                {
633
 
                        svn_client_get_ssl_server_trust_file_provider (item, pool);
634
 
                }
635
 
                
636
 
                public override void client_get_ssl_client_cert_file_provider (IntPtr item, IntPtr pool)
637
 
                {
638
 
                        svn_client_get_ssl_client_cert_file_provider (item, pool);
639
 
                }
640
 
                
641
 
                public override void client_get_ssl_client_cert_pw_file_provider (IntPtr item, IntPtr pool)
642
 
                {
643
 
                        svn_client_get_ssl_client_cert_pw_file_provider (item, pool);
644
 
                }
645
 
                
646
 
                public override void client_get_ssl_server_trust_prompt_provider (IntPtr item, svn_auth_ssl_server_trust_prompt_func_t prompt_func, IntPtr prompt_batton, IntPtr pool)
647
 
                {
648
 
                        svn_client_get_ssl_server_trust_prompt_provider (item, prompt_func, prompt_batton, pool);
649
 
                }
650
 
                
651
 
                public override void client_get_ssl_client_cert_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
652
 
                {
653
 
                        svn_client_get_ssl_client_cert_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
654
 
                }
655
 
                
656
 
                public override void client_get_ssl_client_cert_pw_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
657
 
                {
658
 
                        svn_client_get_ssl_client_cert_pw_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
659
 
                }
660
 
                
661
 
                public override IntPtr client_version ()
662
 
                {
663
 
                        return svn_client_version ();
664
 
                }
665
 
                
666
 
                public override IntPtr client_create_context (out IntPtr ctx, IntPtr pool)
667
 
                {
668
 
                        return svn_client_create_context (out ctx, pool);
669
 
                }
670
 
                
671
 
                public override IntPtr client_ls (out IntPtr dirents, string path_or_url,
672
 
                                                  ref Rev revision, int recurse, IntPtr ctx,
673
 
                                                  IntPtr pool)
674
 
                {
675
 
                        return svn_client_ls (out dirents, path_or_url, ref revision, recurse, ctx, pool);
676
 
                }
677
 
                
678
 
                public override IntPtr client_status (IntPtr result_rev, string path, ref Rev revision,
679
 
                                                      svn_wc_status_func_t status_func, IntPtr status_baton,
680
 
                                                      int descend, int get_all, int update, int no_ignore,
681
 
                                                      IntPtr ctx, IntPtr pool)
682
 
                {
683
 
                        return svn_client_status (result_rev, path, ref revision, status_func, status_baton,
684
 
                                                  descend, get_all, update, no_ignore, ctx, pool);
685
 
                }
686
 
                
687
 
                public override IntPtr client_log (IntPtr apr_array_header_t_targets,
688
 
                                                   ref Rev rev_start, ref Rev rev_end,
689
 
                                                   int discover_changed_paths,
690
 
                                                   int strict_node_history,
691
 
                                                   svn_log_message_receiver_t receiver,
692
 
                                                   IntPtr receiver_baton,
693
 
                                                   IntPtr ctx, IntPtr pool)
694
 
                {
695
 
                        return svn_client_log (apr_array_header_t_targets, ref rev_start, ref rev_end,
696
 
                                               discover_changed_paths, strict_node_history, receiver,
697
 
                                               receiver_baton,ctx, pool);
698
 
                }
699
 
                
700
 
                public override IntPtr time_from_cstring (out long aprtime, string time, IntPtr pool)
701
 
                {
702
 
                        return svn_time_from_cstring (out aprtime, time, pool);
703
 
                }
704
 
                
705
 
                public override IntPtr client_url_from_path (ref IntPtr url, string path_or_url, IntPtr pool)
706
 
                {
707
 
                        return svn_client_url_from_path (ref url, path_or_url, pool);
708
 
                }
709
 
                
710
 
                public override IntPtr client_cat2 (IntPtr stream, string path_or_url,
711
 
                                                    ref Rev peg_revision,
712
 
                                                    ref Rev revision,
713
 
                                                    IntPtr ctx, IntPtr pool)
714
 
                {
715
 
                        return svn_client_cat2 (stream, path_or_url, ref peg_revision, ref revision, ctx, pool);
716
 
                }
717
 
                
718
 
                public override IntPtr stream_create (IntPtr baton, IntPtr pool)
719
 
                {
720
 
                        return svn_stream_create (baton, pool);
721
 
                }
722
 
                
723
 
                //public override IntPtr stream_set_read (IntPtr stream, svn_readwrite_fn_t reader);
724
 
                
725
 
                public override IntPtr stream_set_write (IntPtr stream, svn_readwrite_fn_t writer)
726
 
                {
727
 
                        return svn_stream_set_write (stream, writer);
728
 
                }
729
 
                
730
 
                public override IntPtr client_update (IntPtr result_rev, string path, ref Rev revision,
731
 
                                                      int recurse, IntPtr ctx, IntPtr pool)
732
 
                {
733
 
                        return svn_client_update (result_rev, path, ref revision, recurse, ctx, pool);
734
 
                }
735
 
                
736
 
                public override IntPtr client_delete (ref IntPtr commit_info_p, IntPtr apr_array_header_t_targets, 
737
 
                                                      int force, IntPtr ctx, IntPtr pool)
738
 
                {
739
 
                        return svn_client_delete (ref commit_info_p, apr_array_header_t_targets, force, ctx, pool);
740
 
                }
741
 
                
742
 
                public override IntPtr client_add3 (string path, int recurse, int force, int no_ignore, IntPtr ctx, IntPtr pool)
743
 
                {
744
 
                        return svn_client_add3 (path, recurse, force, no_ignore, ctx, pool);
745
 
                }
746
 
                
747
 
                public override IntPtr client_commit (ref IntPtr svn_client_commit_info_t_commit_info,
748
 
                                                      IntPtr apr_array_header_t_targets, int nonrecursive,
749
 
                                                      IntPtr ctx, IntPtr pool)
750
 
                {
751
 
                        return svn_client_commit (ref svn_client_commit_info_t_commit_info, apr_array_header_t_targets,
752
 
                                                  nonrecursive, ctx, pool);
753
 
                }
754
 
                
755
 
                public override IntPtr client_revert (IntPtr apr_array_header_t_targets, int recursive,
756
 
                                                      IntPtr ctx, IntPtr pool)
757
 
                {
758
 
                        return svn_client_revert (apr_array_header_t_targets, recursive, ctx, pool);
759
 
                }
760
 
                
761
 
                public override IntPtr client_resolved (string path, int recursive, IntPtr ctx, IntPtr pool)
762
 
                {
763
 
                        return svn_client_resolved (path, recursive, ctx, pool);
764
 
                }
765
 
                
766
 
                public override IntPtr client_move (ref IntPtr commit_info_p, string srcPath, ref Rev rev,
767
 
                                                    string destPath, int force, IntPtr ctx, IntPtr pool)
768
 
                {
769
 
                        return svn_client_move (ref commit_info_p, srcPath, ref rev, destPath, force, ctx, pool);
770
 
                }
771
 
                
772
 
                public override IntPtr client_checkout (IntPtr result_rev, string url, string path, ref Rev rev, 
773
 
                                                        int recurse, IntPtr ctx, IntPtr pool)
774
 
                {
775
 
                        return svn_client_checkout (result_rev, url, path, ref rev, recurse, ctx, pool);
776
 
                }
777
 
                
778
 
                public override IntPtr client_mkdir2 (ref IntPtr commit_info, IntPtr apr_array_paths, IntPtr ctx, IntPtr pool)
779
 
                {
780
 
                        return svn_client_mkdir2 (ref commit_info, apr_array_paths, ctx, pool);
781
 
                }
782
 
                
783
 
                public override IntPtr client_diff (IntPtr diff_options, string path1, ref Rev revision1,
784
 
                                                    string path2, ref Rev revision2, int recurse,
785
 
                                                    int ignore_ancestry, int no_diff_deleted,
786
 
                                                    IntPtr outfile, IntPtr errfile,
787
 
                                                    IntPtr ctx, IntPtr pool)
788
 
                {
789
 
                        return svn_client_diff (diff_options, path1, ref revision1, path2, ref revision2, recurse, ignore_ancestry,
790
 
                                                no_diff_deleted, outfile, errfile, ctx, pool);
791
 
                }
792
 
                
793
 
                public override IntPtr client_merge_peg2 (
794
 
                                          string source,
795
 
                                          ref Rev revision1,
796
 
                                          ref Rev revision2,
797
 
                                          ref Rev peg_revision,
798
 
                                          string target_wcpath,
799
 
                                          bool recurse,
800
 
                                          bool ignore_ancestry,
801
 
                                          bool force,
802
 
                                          bool dry_run,
803
 
                                          IntPtr merge_options,
804
 
                                          IntPtr ctx,
805
 
                                          IntPtr pool)
806
 
                {
807
 
                        // svn_boolean_t == int
808
 
                        return svn_client_merge_peg2 (source, ref revision1, ref revision2, ref peg_revision, target_wcpath, 
809
 
                                                      recurse ? 1: 0, ignore_ancestry ? 1 : 0, force ? 1 : 0, dry_run ? 1 : 0,
810
 
                                                      merge_options, ctx, pool);
811
 
                }
812
 
                
813
 
                public override IntPtr client_lock (IntPtr apr_array_header_t_targets, string comment, int steal_lock, IntPtr ctx, IntPtr pool)
814
 
                {
815
 
                        return svn_client_lock (apr_array_header_t_targets, comment, steal_lock, ctx, pool);
816
 
                }
817
 
                
818
 
                public override IntPtr client_unlock (IntPtr apr_array_header_t_targets, int break_lock, IntPtr ctx, IntPtr pool)
819
 
                {
820
 
                        return svn_client_unlock (apr_array_header_t_targets, break_lock, ctx, pool);
821
 
                }
822
 
                
823
 
                public override IntPtr client_prop_get (out IntPtr value, string name, string target, ref Rev revision, int recurse, IntPtr ctx, IntPtr pool)
824
 
                {
825
 
                        return svn_client_prop_get (out value, name, target, ref revision, recurse, ctx, pool);
826
 
                }
827
 
                
828
 
                public override IntPtr client_blame (string path, ref Rev rev_start, ref Rev rev_end, svn_client_blame_receiver_t receiver, System.IntPtr baton, System.IntPtr ctx, System.IntPtr pool)
829
 
                {
830
 
                        return svn_client_blame (path, ref rev_start, ref rev_end, receiver, baton, ctx, pool);
831
 
                }
832
 
                
833
 
                public override void strerror (int statcode, byte[] buf, int bufsize)
834
 
                {
835
 
                        svn_strerror (statcode, buf, bufsize);
836
 
                }
837
 
                
838
 
 
839
 
                
840
 
                [DllImport(svnclientlib)] static extern void svn_config_ensure (string config_dir, IntPtr pool);
841
 
                [DllImport(svnclientlib)] static extern void svn_config_get_config (ref IntPtr cfg_hash, string config_dir, IntPtr pool);
842
 
                [DllImport(svnclientlib)] static extern void svn_auth_open (out IntPtr auth_baton, IntPtr providers, IntPtr pool);
843
 
                [DllImport(svnclientlib)] static extern void svn_auth_set_parameter (IntPtr auth_baton, string name, IntPtr value);
844
 
                [DllImport(svnclientlib)] static extern IntPtr svn_auth_get_parameter (IntPtr auth_baton, string name);
845
 
                [DllImport(svnclientlib)] static extern void svn_client_get_simple_provider (IntPtr item, IntPtr pool);
846
 
                [DllImport(svnclientlib)] static extern void svn_client_get_simple_prompt_provider (IntPtr item, svn_auth_simple_prompt_func_t prompt_func, IntPtr prompt_batton, [MarshalAs (UnmanagedType.SysInt)] int retry_limit, IntPtr pool);
847
 
                [DllImport(svnclientlib)] static extern void svn_client_get_username_provider (IntPtr item, IntPtr pool);
848
 
                [DllImport(svnclientlib)] static extern void svn_client_get_username_prompt_provider (IntPtr item, svn_auth_username_prompt_func_t prompt_func, IntPtr prompt_batton, [MarshalAs (UnmanagedType.SysInt)] int retry_limit, IntPtr pool);
849
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_server_trust_file_provider (IntPtr item, IntPtr pool);
850
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_file_provider (IntPtr item, IntPtr pool);
851
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_pw_file_provider (IntPtr item, IntPtr pool);
852
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_server_trust_prompt_provider (IntPtr item, svn_auth_ssl_server_trust_prompt_func_t prompt_func, IntPtr prompt_batton, IntPtr pool);
853
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_prompt_func_t prompt_func, IntPtr prompt_batton, [MarshalAs (UnmanagedType.SysInt)] int retry_limit, IntPtr pool);
854
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_pw_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, IntPtr prompt_batton, [MarshalAs (UnmanagedType.SysInt)] int retry_limit, IntPtr pool);
855
 
                
856
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_version();
857
 
                
858
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_create_context(out IntPtr ctx, IntPtr pool);
859
 
                
860
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_ls (out IntPtr dirents, string path_or_url,
861
 
                                                                              ref Rev revision, int recurse, IntPtr ctx,
862
 
                                                                              IntPtr pool);
863
 
                
864
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_status (IntPtr result_rev, string path, ref Rev revision,
865
 
                                                                                  svn_wc_status_func_t status_func, IntPtr status_baton,
866
 
                                                                                  int descend, int get_all, int update, int no_ignore,
867
 
                                                                                  IntPtr ctx, IntPtr pool);
868
 
                
869
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_log (IntPtr apr_array_header_t_targets,
870
 
                                                                               ref Rev rev_start, ref Rev rev_end,
871
 
                                                                               int discover_changed_paths,
872
 
                                                                               int strict_node_history,
873
 
                                                                               svn_log_message_receiver_t receiver,
874
 
                                                                               IntPtr receiver_baton,
875
 
                                                                               IntPtr ctx, IntPtr pool);
876
 
                
877
 
                [DllImport(svnclientlib)] static extern IntPtr svn_time_from_cstring (out long aprtime, string time, IntPtr pool);
878
 
                
879
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_url_from_path (ref IntPtr url, string path_or_url, IntPtr pool);
880
 
                
881
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_cat2 (IntPtr stream, string path_or_url,
882
 
                                                                                ref Rev peg_revision,
883
 
                                                                                ref Rev revision,
884
 
                                                                                IntPtr ctx, IntPtr pool);
885
 
                
886
 
                [DllImport(svnclientlib)] static extern IntPtr svn_stream_create (IntPtr baton, IntPtr pool);
887
 
                
888
 
                //[DllImport(svnclientlib)] static extern IntPtr svn_stream_set_read (IntPtr stream, svn_readwrite_fn_t reader);
889
 
                
890
 
                [DllImport(svnclientlib)] static extern IntPtr svn_stream_set_write (IntPtr stream, svn_readwrite_fn_t writer);
891
 
                
892
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_update (IntPtr result_rev, string path, ref Rev revision,
893
 
                                                                                  int recurse, IntPtr ctx, IntPtr pool);
894
 
                
895
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_delete (ref IntPtr commit_info_p, IntPtr apr_array_header_t_targets, 
896
 
                                                                                  int force, IntPtr ctx, IntPtr pool);
897
 
                
898
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_add3 (string path, int recurse, int force, int no_ignore, IntPtr ctx, IntPtr pool);
899
 
                
900
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_commit (ref IntPtr svn_client_commit_info_t_commit_info,
901
 
                                                                                  IntPtr apr_array_header_t_targets, int nonrecursive,
902
 
                                                                                  IntPtr ctx, IntPtr pool);
903
 
                
904
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_revert (IntPtr apr_array_header_t_targets, int recursive,
905
 
                                                                                  IntPtr ctx, IntPtr pool);
906
 
                
907
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_resolved (string path, int recursive, IntPtr ctx, IntPtr pool);
908
 
                
909
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_move (ref IntPtr commit_info_p, string srcPath, ref Rev rev,
910
 
                                                                                string destPath, int force, IntPtr ctx, IntPtr pool);
911
 
                
912
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_checkout (IntPtr result_rev, string url, string path, ref Rev rev, 
913
 
                                                                                    int recurse, IntPtr ctx, IntPtr pool);
914
 
                
915
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_mkdir2 (ref IntPtr commit_info, IntPtr apr_array_paths, IntPtr ctx, IntPtr pool);
916
 
                
917
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_diff (IntPtr diff_options, string path1,
918
 
                                                                                ref Rev revision1, string path2,
919
 
                                                                                ref Rev revision2, int recurse,
920
 
                                                                                int ignore_ancestry,
921
 
                                                                                int no_diff_deleted,
922
 
                                                                                IntPtr outfile,
923
 
                                                                                IntPtr errfile,
924
 
                                                                                IntPtr ctx,
925
 
                                                                                IntPtr pool);
926
 
                
927
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_merge_peg2 (string source,
928
 
                                                                                      ref Rev revision1,
929
 
                                                                                      ref Rev revision2,
930
 
                                                                                      ref Rev peg_revision,
931
 
                                                                                      string target_wcpath,
932
 
                                                                                      int recurse,
933
 
                                                                                      int ignore_ancestry,
934
 
                                                                                      int force,
935
 
                                                                                      int dry_run,
936
 
                                                                                      IntPtr merge_options,
937
 
                                                                                      IntPtr ctx,
938
 
                                                                                      IntPtr pool);
939
 
                
940
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_lock (IntPtr apr_array_header_t_targets, string comment, int steal_lock, IntPtr ctx, IntPtr pool);
941
 
                
942
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_unlock (IntPtr apr_array_header_t_targets, int break_lock, IntPtr ctx, IntPtr pool);
943
 
                
944
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_prop_get (out IntPtr value, string name, string target, ref Rev revision, int recurse, IntPtr ctx, IntPtr pool);
945
 
 
946
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_blame (string path, ref Rev rev_start, ref Rev rev_end, svn_client_blame_receiver_t receiver, IntPtr baton, IntPtr ctx, IntPtr pool);
947
 
                
948
 
                [DllImport(svnclientlib)] static extern void svn_strerror (int statcode, byte[] buf, int bufsize);
949
 
        }
950
 
        
951
 
        public class LibSvnClient1 : LibSvnClient {
952
 
                private const string svnclientlib = "libsvn_client-1.so.1";
953
 
                
954
 
                public override void config_ensure (string config_dir, IntPtr pool)
955
 
                {
956
 
                        svn_config_ensure (config_dir, pool);
957
 
                }
958
 
                
959
 
                public override void config_get_config (ref IntPtr cfg_hash, string config_dir, IntPtr pool)
960
 
                {
961
 
                        svn_config_get_config (ref cfg_hash, config_dir, pool);
962
 
                }
963
 
                
964
 
                public override void auth_open (out IntPtr auth_baton, IntPtr providers, IntPtr pool)   
965
 
                {
966
 
                        svn_auth_open (out auth_baton, providers, pool);
967
 
                }
968
 
                
969
 
                public override void auth_set_parameter (IntPtr auth_baton, string name, IntPtr value)
970
 
                {
971
 
                        svn_auth_set_parameter (auth_baton, name, value);
972
 
                }
973
 
                
974
 
                public override IntPtr auth_get_parameter (IntPtr auth_baton, string name)
975
 
                {
976
 
                        return svn_auth_get_parameter (auth_baton, name);
977
 
                }
978
 
                
979
 
                public override void client_get_simple_provider (IntPtr item, IntPtr pool)
980
 
                {
981
 
                        svn_client_get_simple_provider (item, pool);
982
 
                }
983
 
                
984
 
                public override void client_get_simple_prompt_provider (IntPtr item, svn_auth_simple_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
985
 
                {
986
 
                        svn_client_get_simple_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
987
 
                }
988
 
                
989
 
                public override void client_get_username_provider (IntPtr item, IntPtr pool)
990
 
                {
991
 
                        svn_client_get_username_provider (item, pool);
992
 
                }
993
 
                
994
 
                public override void client_get_username_prompt_provider (IntPtr item, svn_auth_username_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
995
 
                {
996
 
                        svn_client_get_username_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
997
 
                }
998
 
                
999
 
                public override void client_get_ssl_server_trust_file_provider (IntPtr item, IntPtr pool)
1000
 
                {
1001
 
                        svn_client_get_ssl_server_trust_file_provider (item, pool);
1002
 
                }
1003
 
                
1004
 
                public override void client_get_ssl_client_cert_file_provider (IntPtr item, IntPtr pool)
1005
 
                {
1006
 
                        svn_client_get_ssl_client_cert_file_provider (item, pool);
1007
 
                }
1008
 
                
1009
 
                public override void client_get_ssl_client_cert_pw_file_provider (IntPtr item, IntPtr pool)
1010
 
                {
1011
 
                        svn_client_get_ssl_client_cert_pw_file_provider (item, pool);
1012
 
                }
1013
 
                
1014
 
                public override void client_get_ssl_server_trust_prompt_provider (IntPtr item, svn_auth_ssl_server_trust_prompt_func_t prompt_func, IntPtr prompt_batton, IntPtr pool)
1015
 
                {
1016
 
                        svn_client_get_ssl_server_trust_prompt_provider (item, prompt_func, prompt_batton, pool);
1017
 
                }
1018
 
                
1019
 
                public override void client_get_ssl_client_cert_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
1020
 
                {
1021
 
                        svn_client_get_ssl_client_cert_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
1022
 
                }
1023
 
                
1024
 
                public override void client_get_ssl_client_cert_pw_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
1025
 
                {
1026
 
                        svn_client_get_ssl_client_cert_pw_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
1027
 
                }
1028
 
                
1029
 
                public override IntPtr client_version ()
1030
 
                {
1031
 
                        return svn_client_version ();
1032
 
                }
1033
 
                
1034
 
                public override IntPtr client_create_context (out IntPtr ctx, IntPtr pool)
1035
 
                {
1036
 
                        return svn_client_create_context (out ctx, pool);
1037
 
                }
1038
 
                
1039
 
                public override IntPtr client_ls (out IntPtr dirents, string path_or_url,
1040
 
                                                  ref Rev revision, int recurse, IntPtr ctx,
1041
 
                                                  IntPtr pool)
1042
 
                {
1043
 
                        return svn_client_ls (out dirents, path_or_url, ref revision, recurse, ctx, pool);
1044
 
                }
1045
 
                
1046
 
                public override IntPtr client_status (IntPtr result_rev, string path, ref Rev revision,
1047
 
                                                      svn_wc_status_func_t status_func, IntPtr status_baton,
1048
 
                                                      int descend, int get_all, int update, int no_ignore,
1049
 
                                                      IntPtr ctx, IntPtr pool)
1050
 
                {
1051
 
                        return svn_client_status (result_rev, path, ref revision, status_func, status_baton,
1052
 
                                                  descend, get_all, update, no_ignore, ctx, pool);
1053
 
                }
1054
 
                
1055
 
                public override IntPtr client_log (IntPtr apr_array_header_t_targets,
1056
 
                                                   ref Rev rev_start, ref Rev rev_end,
1057
 
                                                   int discover_changed_paths,
1058
 
                                                   int strict_node_history,
1059
 
                                                   svn_log_message_receiver_t receiver,
1060
 
                                                   IntPtr receiver_baton,
1061
 
                                                   IntPtr ctx, IntPtr pool)
1062
 
                {
1063
 
                        return svn_client_log (apr_array_header_t_targets, ref rev_start, ref rev_end,
1064
 
                                               discover_changed_paths, strict_node_history, receiver,
1065
 
                                               receiver_baton,ctx, pool);
1066
 
                }
1067
 
                
1068
 
                public override IntPtr time_from_cstring (out long aprtime, string time, IntPtr pool)
1069
 
                {
1070
 
                        return svn_time_from_cstring (out aprtime, time, pool);
1071
 
                }
1072
 
                
1073
 
                public override IntPtr client_url_from_path (ref IntPtr url, string path_or_url, IntPtr pool)
1074
 
                {
1075
 
                        return svn_client_url_from_path (ref url, path_or_url, pool);
1076
 
                }
1077
 
                
1078
 
                public override IntPtr client_cat2 (IntPtr stream, string path_or_url,
1079
 
                                                    ref Rev peg_revision,
1080
 
                                                    ref Rev revision,
1081
 
                                                    IntPtr ctx, IntPtr pool)
1082
 
                {
1083
 
                        return svn_client_cat2 (stream, path_or_url, ref peg_revision, ref revision, ctx, pool);
1084
 
                }
1085
 
                
1086
 
                public override IntPtr stream_create (IntPtr baton, IntPtr pool)
1087
 
                {
1088
 
                        return svn_stream_create (baton, pool);
1089
 
                }
1090
 
                
1091
 
                //public override IntPtr stream_set_read (IntPtr stream, svn_readwrite_fn_t reader);
1092
 
                
1093
 
                public override IntPtr stream_set_write (IntPtr stream, svn_readwrite_fn_t writer)
1094
 
                {
1095
 
                        return svn_stream_set_write (stream, writer);
1096
 
                }
1097
 
                
1098
 
                public override IntPtr client_update (IntPtr result_rev, string path, ref Rev revision,
1099
 
                                                      int recurse, IntPtr ctx, IntPtr pool)
1100
 
                {
1101
 
                        return svn_client_update (result_rev, path, ref revision, recurse, ctx, pool);
1102
 
                }
1103
 
                
1104
 
                public override IntPtr client_delete (ref IntPtr commit_info_p, IntPtr apr_array_header_t_targets, 
1105
 
                                                      int force, IntPtr ctx, IntPtr pool)
1106
 
                {
1107
 
                        return svn_client_delete (ref commit_info_p, apr_array_header_t_targets, force, ctx, pool);
1108
 
                }
1109
 
                
1110
 
                public override IntPtr client_add3 (string path, int recurse, int force, int no_ignore, IntPtr ctx, IntPtr pool)
1111
 
                {
1112
 
                        return svn_client_add3 (path, recurse, force, no_ignore, ctx, pool);
1113
 
                }
1114
 
                
1115
 
                public override IntPtr client_commit (ref IntPtr svn_client_commit_info_t_commit_info,
1116
 
                                                      IntPtr apr_array_header_t_targets, int nonrecursive,
1117
 
                                                      IntPtr ctx, IntPtr pool)
1118
 
                {
1119
 
                        return svn_client_commit (ref svn_client_commit_info_t_commit_info, apr_array_header_t_targets,
1120
 
                                                  nonrecursive, ctx, pool);
1121
 
                }
1122
 
                
1123
 
                public override IntPtr client_revert (IntPtr apr_array_header_t_targets, int recursive,
1124
 
                                                      IntPtr ctx, IntPtr pool)
1125
 
                {
1126
 
                        return svn_client_revert (apr_array_header_t_targets, recursive, ctx, pool);
1127
 
                }
1128
 
                
1129
 
                public override IntPtr client_resolved (string path, int recursive, IntPtr ctx, IntPtr pool)
1130
 
                {
1131
 
                        return svn_client_resolved (path, recursive, ctx, pool);
1132
 
                }
1133
 
                
1134
 
                public override IntPtr client_move (ref IntPtr commit_info_p, string srcPath, ref Rev rev,
1135
 
                                                    string destPath, int force, IntPtr ctx, IntPtr pool)
1136
 
                {
1137
 
                        return svn_client_move (ref commit_info_p, srcPath, ref rev, destPath, force, ctx, pool);
1138
 
                }
1139
 
                
1140
 
                public override IntPtr client_checkout (IntPtr result_rev, string url, string path, ref Rev rev, 
1141
 
                                                        int recurse, IntPtr ctx, IntPtr pool)
1142
 
                {
1143
 
                        return svn_client_checkout (result_rev, url, path, ref rev, recurse, ctx, pool);
1144
 
                }
1145
 
                
1146
 
                public override IntPtr client_mkdir2 (ref IntPtr commit_info, IntPtr apr_array_paths, IntPtr ctx, IntPtr pool)
1147
 
                {
1148
 
                        return svn_client_mkdir2 (ref commit_info, apr_array_paths, ctx, pool);
1149
 
                }
1150
 
                
1151
 
                public override IntPtr client_diff (IntPtr diff_options, string path1, ref Rev revision1,
1152
 
                                                    string path2, ref Rev revision2, int recurse,
1153
 
                                                    int ignore_ancestry, int no_diff_deleted,
1154
 
                                                    IntPtr outfile, IntPtr errfile,
1155
 
                                                    IntPtr ctx, IntPtr pool)
1156
 
                {
1157
 
                        return svn_client_diff (diff_options, path1, ref revision1, path2, ref revision2, recurse, ignore_ancestry,
1158
 
                                                no_diff_deleted, outfile, errfile, ctx, pool);
1159
 
                }
1160
 
                
1161
 
                public override IntPtr client_merge_peg2 (
1162
 
                                          string source,
1163
 
                                          ref Rev revision1,
1164
 
                                          ref Rev revision2,
1165
 
                                          ref Rev peg_revision,
1166
 
                                          string target_wcpath,
1167
 
                                          bool recurse,
1168
 
                                          bool ignore_ancestry,
1169
 
                                          bool force,
1170
 
                                          bool dry_run,
1171
 
                                          IntPtr merge_options,
1172
 
                                          IntPtr ctx,
1173
 
                                          IntPtr pool)
1174
 
                {
1175
 
                        // svn_boolean_t == int
1176
 
                        return svn_client_merge_peg2 (source, ref revision1, ref revision2, ref peg_revision, target_wcpath, 
1177
 
                                                      recurse ? 1: 0, ignore_ancestry ? 1 : 0, force ? 1 : 0, dry_run ? 1 : 0,
1178
 
                                                      merge_options, ctx, pool);
1179
 
                }
1180
 
                
1181
 
                public override IntPtr client_lock (IntPtr apr_array_header_t_targets, string comment, int steal_lock, IntPtr ctx, IntPtr pool)
1182
 
                {
1183
 
                        return svn_client_lock (apr_array_header_t_targets, comment, steal_lock, ctx, pool);
1184
 
                }
1185
 
                
1186
 
                public override IntPtr client_unlock (IntPtr apr_array_header_t_targets, int break_lock, IntPtr ctx, IntPtr pool)
1187
 
                {
1188
 
                        return svn_client_unlock (apr_array_header_t_targets, break_lock, ctx, pool);
1189
 
                }
1190
 
                
1191
 
                public override IntPtr client_prop_get (out IntPtr value, string name, string target, ref Rev revision, int recurse, IntPtr ctx, IntPtr pool)
1192
 
                {
1193
 
                        return svn_client_prop_get (out value, name, target, ref revision, recurse, ctx, pool);
1194
 
                }
1195
 
                
1196
 
                public override IntPtr client_blame (string path, ref Rev rev_start, ref Rev rev_end, svn_client_blame_receiver_t receiver, System.IntPtr baton, System.IntPtr ctx, System.IntPtr pool)
1197
 
                {
1198
 
                        return svn_client_blame (path, ref rev_start, ref rev_end, receiver, baton, ctx, pool);
1199
 
                }
1200
 
                
1201
 
                public override void strerror (int statcode, byte[] buf, int bufsize)
1202
 
                {
1203
 
                        svn_strerror (statcode, buf, bufsize);
1204
 
                }
1205
 
 
1206
 
 
1207
 
                [DllImport(svnclientlib)] static extern void svn_config_ensure (string config_dir, IntPtr pool);
1208
 
                [DllImport(svnclientlib)] static extern void svn_config_get_config (ref IntPtr cfg_hash, string config_dir, IntPtr pool);
1209
 
                [DllImport(svnclientlib)] static extern void svn_auth_open (out IntPtr auth_baton, IntPtr providers, IntPtr pool);
1210
 
                [DllImport(svnclientlib)] static extern void svn_auth_set_parameter (IntPtr auth_baton, string name, IntPtr value);
1211
 
                [DllImport(svnclientlib)] static extern IntPtr svn_auth_get_parameter (IntPtr auth_baton, string name);
1212
 
                [DllImport(svnclientlib)] static extern void svn_client_get_simple_provider (IntPtr item, IntPtr pool);
1213
 
                [DllImport(svnclientlib)] static extern void svn_client_get_simple_prompt_provider (IntPtr item, svn_auth_simple_prompt_func_t prompt_func, IntPtr prompt_batton, [MarshalAs (UnmanagedType.SysInt)] int retry_limit, IntPtr pool);
1214
 
                [DllImport(svnclientlib)] static extern void svn_client_get_username_provider (IntPtr item, IntPtr pool);
1215
 
                [DllImport(svnclientlib)] static extern void svn_client_get_username_prompt_provider (IntPtr item, svn_auth_username_prompt_func_t prompt_func, IntPtr prompt_batton, [MarshalAs (UnmanagedType.SysInt)] int retry_limit, IntPtr pool);
1216
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_server_trust_file_provider (IntPtr item, IntPtr pool);
1217
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_file_provider (IntPtr item, IntPtr pool);
1218
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_pw_file_provider (IntPtr item, IntPtr pool);
1219
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_server_trust_prompt_provider (IntPtr item, svn_auth_ssl_server_trust_prompt_func_t prompt_func, IntPtr prompt_batton, IntPtr pool);
1220
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_prompt_func_t prompt_func, IntPtr prompt_batton, [MarshalAs (UnmanagedType.SysInt)] int retry_limit, IntPtr pool);
1221
 
                [DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_pw_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, IntPtr prompt_batton, [MarshalAs (UnmanagedType.SysInt)] int retry_limit, IntPtr pool);
1222
 
                
1223
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_version();
1224
 
                
1225
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_create_context(out IntPtr ctx, IntPtr pool);
1226
 
                
1227
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_ls (out IntPtr dirents, string path_or_url,
1228
 
                                                                              ref Rev revision, int recurse, IntPtr ctx,
1229
 
                                                                              IntPtr pool);
1230
 
                
1231
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_status (IntPtr result_rev, string path, ref Rev revision,
1232
 
                                                                                  svn_wc_status_func_t status_func, IntPtr status_baton,
1233
 
                                                                                  int descend, int get_all, int update, int no_ignore,
1234
 
                                                                                  IntPtr ctx, IntPtr pool);
1235
 
                
1236
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_log (IntPtr apr_array_header_t_targets,
1237
 
                                                                               ref Rev rev_start, ref Rev rev_end,
1238
 
                                                                               int discover_changed_paths,
1239
 
                                                                               int strict_node_history,
1240
 
                                                                               svn_log_message_receiver_t receiver,
1241
 
                                                                               IntPtr receiver_baton,
1242
 
                                                                               IntPtr ctx, IntPtr pool);
1243
 
                
1244
 
                [DllImport(svnclientlib)] static extern IntPtr svn_time_from_cstring (out long aprtime, string time, IntPtr pool);
1245
 
                
1246
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_url_from_path (ref IntPtr url, string path_or_url, IntPtr pool);
1247
 
                
1248
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_cat2 (IntPtr stream, string path_or_url,
1249
 
                                                                                ref Rev peg_revision,
1250
 
                                                                                ref Rev revision,
1251
 
                                                                                IntPtr ctx, IntPtr pool);
1252
 
                
1253
 
                [DllImport(svnclientlib)] static extern IntPtr svn_stream_create (IntPtr baton, IntPtr pool);
1254
 
                
1255
 
                //[DllImport(svnclientlib)] static extern IntPtr svn_stream_set_read (IntPtr stream, svn_readwrite_fn_t reader);
1256
 
                
1257
 
                [DllImport(svnclientlib)] static extern IntPtr svn_stream_set_write (IntPtr stream, svn_readwrite_fn_t writer);
1258
 
                
1259
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_update (IntPtr result_rev, string path, ref Rev revision,
1260
 
                                                                                  int recurse, IntPtr ctx, IntPtr pool);
1261
 
                
1262
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_delete (ref IntPtr commit_info_p, IntPtr apr_array_header_t_targets, 
1263
 
                                                                                  int force, IntPtr ctx, IntPtr pool);
1264
 
                
1265
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_add3 (string path, int recurse, int force, int no_ignore, IntPtr ctx, IntPtr pool);
1266
 
                
1267
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_commit (ref IntPtr svn_client_commit_info_t_commit_info,
1268
 
                                                                                  IntPtr apr_array_header_t_targets, int nonrecursive,
1269
 
                                                                                  IntPtr ctx, IntPtr pool);
1270
 
                
1271
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_revert (IntPtr apr_array_header_t_targets, int recursive,
1272
 
                                                                                  IntPtr ctx, IntPtr pool);
1273
 
                
1274
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_resolved (string path, int recursive, IntPtr ctx, IntPtr pool);
1275
 
                
1276
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_move (ref IntPtr commit_info_p, string srcPath, ref Rev rev,
1277
 
                                                                                string destPath, int force, IntPtr ctx, IntPtr pool);
1278
 
                
1279
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_checkout (IntPtr result_rev, string url, string path, ref Rev rev, 
1280
 
                                                                                    int recurse, IntPtr ctx, IntPtr pool);
1281
 
                
1282
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_mkdir2 (ref IntPtr commit_info, IntPtr apr_array_paths, IntPtr ctx, IntPtr pool);
1283
 
                
1284
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_diff (IntPtr diff_options, string path1,
1285
 
                                                                                ref Rev revision1, string path2,
1286
 
                                                                                ref Rev revision2, int recurse,
1287
 
                                                                                int ignore_ancestry,
1288
 
                                                                                int no_diff_deleted,
1289
 
                                                                                IntPtr outfile,
1290
 
                                                                                IntPtr errfile,
1291
 
                                                                                IntPtr ctx,
1292
 
                                                                                IntPtr pool);
1293
 
                
1294
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_merge_peg2 (string source,
1295
 
                                                                                      ref Rev revision1,
1296
 
                                                                                      ref Rev revision2,
1297
 
                                                                                      ref Rev peg_revision,
1298
 
                                                                                      string target_wcpath,
1299
 
                                                                                      int recurse,
1300
 
                                                                                      int ignore_ancestry,
1301
 
                                                                                      int force,
1302
 
                                                                                      int dry_run,
1303
 
                                                                                      IntPtr merge_options,
1304
 
                                                                                      IntPtr ctx,
1305
 
                                                                                      IntPtr pool);
1306
 
                
1307
 
                
1308
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_lock (IntPtr apr_array_header_t_targets, string comment, int steal_lock, IntPtr ctx, IntPtr pool);
1309
 
                
1310
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_unlock (IntPtr apr_array_header_t_targets, int break_lock, IntPtr ctx, IntPtr pool);
1311
 
                
1312
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_prop_get (out IntPtr value, string name, string target, ref Rev revision, int recurse, IntPtr ctx, IntPtr pool);
1313
 
                
1314
 
                [DllImport(svnclientlib)] static extern IntPtr svn_client_blame (string path, ref Rev rev_start, ref Rev rev_end, svn_client_blame_receiver_t receiver, IntPtr baton, IntPtr ctx, IntPtr pool);
1315
 
                
1316
 
                [DllImport(svnclientlib)] static extern void svn_strerror (int statcode, byte[] buf, int bufsize);
1317
 
        }
1318
 
}