~ubuntu-branches/debian/sid/subversion/sid

« back to all changes in this revision

Viewing changes to subversion/bindings/swig/perl/native/Client.pm

  • Committer: Package Import Robot
  • Author(s): James McCoy, Peter Samuelson, James McCoy
  • Date: 2014-01-12 19:48:33 UTC
  • mfrom: (0.2.10)
  • Revision ID: package-import@ubuntu.com-20140112194833-w3axfwksn296jn5x
Tags: 1.8.5-1
[ Peter Samuelson ]
* New upstream release.  (Closes: #725787) Rediff patches:
  - Remove apr-abi1 (applied upstream), rename apr-abi2 to apr-abi
  - Remove loosen-sqlite-version-check (shouldn't be needed)
  - Remove java-osgi-metadata (applied upstream)
  - svnmucc prompts for a changelog if none is provided. (Closes: #507430)
  - Remove fix-bdb-version-detection, upstream uses "apu-config --dbm-libs"
  - Remove ruby-test-wc (applied upstream)
  - Fix “svn diff -r N file” when file has svn:mime-type set.
    (Closes: #734163)
  - Support specifying an encoding for mod_dav_svn's environment in which
    hooks are run.  (Closes: #601544)
  - Fix ordering of “svnadmin dump” paths with certain APR versions.
    (Closes: #687291)
  - Provide a better error message when authentication fails with an
    svn+ssh:// URL.  (Closes: #273874)
  - Updated Polish translations.  (Closes: #690815)

[ James McCoy ]
* Remove all traces of libneon, replaced by libserf.
* patches/sqlite_3.8.x_workaround: Upstream fix for wc-queries-test test
  failurse.
* Run configure with --with-apache-libexecdir, which allows removing part of
  patches/rpath.
* Re-enable auth-test as upstream has fixed the problem of picking up
  libraries from the environment rather than the build tree.
  (Closes: #654172)
* Point LD_LIBRARY_PATH at the built auth libraries when running the svn
  command during the build.  (Closes: #678224)
* Add a NEWS entry describing how to configure mod_dav_svn to understand
  UTF-8.  (Closes: #566148)
* Remove ancient transitional package, libsvn-ruby.
* Enable compatibility with Sqlite3 versions back to Wheezy.
* Enable hardening flags.  (Closes: #734918)
* patches/build-fixes: Enable verbose build logs.
* Build against the default ruby version.  (Closes: #722393)

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
my @_all_fns;
9
9
BEGIN {
10
10
    @_all_fns =
11
 
        qw( version diff_summarize_dup create_context checkout3
12
 
            checkout2 checkout update3 update2 update switch2 switch
13
 
            add4 add3 add2 add mkdir3 mkdir2 mkdir delete3 delete2
14
 
            delete import3 import2 import commit4 commit3 commit2
15
 
            commit status3 status2 status log4 log3 log2 log blame4
16
 
            blame3 blame2 blame diff4 diff3 diff2 diff diff_peg4
17
 
            diff_peg3 diff_peg2 diff_peg diff_summarize2
18
 
            diff_summarize diff_summarize_peg2 diff_summarize_peg
19
 
            merge3 merge2 merge merge_peg3 merge_peg2 merge_peg
20
 
            cleanup relocate revert2 revert resolve resolved copy4
21
 
            copy3 copy2 copy move5 move4 move3 move2 move propset3
22
 
            propset2 propset revprop_set propget3 propget2
23
 
            propget revprop_get proplist3 proplist2 proplist
24
 
            revprop_list export4 export3 export2 export list2 list
25
 
            ls3 ls2 ls cat2 cat add_to_changelist
26
 
            remove_from_changelist lock unlock info2 info
27
 
            url_from_path uuid_from_url uuid_from_path open_ra_session
28
 
            invoke_blame_receiver2 invoke_blame_receiver
29
 
            invoke_diff_summarize_func
 
11
        qw( add add2 add3 add4 add_to_changelist blame blame2 blame3 blame4
 
12
            cat cat2 checkout checkout2 checkout3 cleanup
 
13
            commit commit2 commit3 commit4 copy copy2 copy3 copy4
 
14
            create_context delete delete2 delete3 diff diff2 diff3 diff4
 
15
            diff_peg diff_peg2 diff_peg3 diff_peg4
 
16
            diff_summarize diff_summarize2 diff_summarize_dup
 
17
            diff_summarize_peg diff_summarize_peg2
 
18
            export export2 export3 export4 import import2 import3
 
19
            info info2 invoke_blame_receiver invoke_blame_receiver2
 
20
            invoke_diff_summarize_func list list2 lock
 
21
            log log2 log3 log4 log5 ls ls2 ls3
 
22
            merge merge2 merge3 merge_peg merge_peg2 merge_peg3
 
23
            mkdir mkdir2 mkdir3 mkdir4 move move2 move3 move4 move5
 
24
            open_ra_session propget propget2 propget3
 
25
            proplist proplist2 proplist3 propset propset2 propset3
 
26
            relocate remove_from_changelist resolve resolved
 
27
            revert revert2 revprop_get revprop_list revprop_set
 
28
            status status2 status3 status4 switch switch2
 
29
            unlock update update2 update3 update4
 
30
            url_from_path uuid_from_path uuid_from_url version
30
31
          );
31
32
 
32
33
    require SVN::Base;
40
41
=head1 SYNOPSIS
41
42
 
42
43
    use SVN::Client;
43
 
    my $ctx = new SVN::Client(
44
 
              auth => [SVN::Client::get_simple_provider(),
45
 
              SVN::Client::get_simple_prompt_provider(\&simple_prompt,2),
46
 
              SVN::Client::get_username_provider()]
47
 
              );
 
44
    my $client = new SVN::Client(
 
45
      auth => [
 
46
          SVN::Client::get_simple_provider(),
 
47
          SVN::Client::get_simple_prompt_provider(\&simple_prompt,2),
 
48
          SVN::Client::get_username_provider()
 
49
      ]);
48
50
 
49
 
    $ctx->cat(\*STDOUT, 'http://svn.apache.org/repos/asf/subversion/trunk/README',
50
 
              'HEAD');
 
51
    $client->cat(\*STDOUT, 
 
52
              'http://svn.apache.org/repos/asf/subversion/trunk/README', 'HEAD');
51
53
 
52
54
    sub simple_prompt {
53
 
      my $cred = shift;
54
 
      my $realm = shift;
55
 
      my $default_username = shift;
56
 
      my $may_save = shift;
57
 
      my $pool = shift;
 
55
      my ($cred, $realm, $default_username, $may_save, $pool) = @_;
58
56
 
59
57
      print "Enter authentication info for realm: $realm\n";
60
58
      print "Username: ";
81
79
This allows method call invocation of the methods to be possible.  For
82
80
example, the following are equivalent:
83
81
 
84
 
  SVN::Client::add($ctx,$path, $recursive, $pool);
85
 
  $ctx->add($path, $recursive, $pool);
 
82
  SVN::Client::add($client,$path, $recursive, $pool);
 
83
  $client->add($path, $recursive, $pool);
86
84
 
87
85
Many of the C API calls also take a apr_pool_t pointer as their last
88
86
argument.  The Perl bindings generally deal with this for you and
103
101
 
104
102
=over 4
105
103
 
106
 
=item $ctx
 
104
=item $client
107
105
 
108
106
An SVN::Client object that you get from the constructor.
109
107
 
133
131
 
134
132
=item $revision
135
133
 
136
 
This specifies a revision in the subversion repository.  You can specify a
 
134
This specifies a revision in the Subversion repository.  You can specify a
137
135
revision in several ways.  The easiest and most obvious is to directly
138
136
provide the revision number.  You may also use the strings (aka revision
139
137
keywords) 'HEAD', 'BASE', 'COMMITTED', and 'PREV' which have the same
140
138
meanings as in the command line client.  When referencing a working copy
141
139
you can use the string 'WORKING" to reference the BASE plus any local
142
 
modifications.  undef may be used to specify an unspecified revision.
143
 
Finally you may pass a date by specifying the date inside curly braces
 
140
modifications.  C<undef> may be used to specify an unspecified revision.
 
141
You may also pass a date by specifying the date inside curly braces
144
142
'{}'.  The date formats accepted are the same as the command line client
145
 
accepts.
 
143
accepts. Finally a C<_p_svn_opt_revision_t> object is accepted
 
144
(which may have been returned by some Subversion function).
146
145
 
147
146
=item $recursive $nonrecursive.
148
147
 
163
162
 
164
163
=over 4
165
164
 
166
 
=item $ctx = SVN::Client-E<gt>new( %options );
 
165
=item $client = SVN::Client-E<gt>new( %options );
167
166
 
168
167
This class method constructs a new C<SVN::Client> object and returns
169
168
a reference to it.
252
251
    return $self;
253
252
}
254
253
 
255
 
=item $ctx-E<gt>add($path, $recursive, $pool);
 
254
=item $client-E<gt>add($path, $recursive, $pool);
 
255
 
 
256
Similar to $client-E<gt>add2(), but with $force always set to FALSE.
 
257
 
 
258
=item $client-E<gt>add2($path, $recursive, $force, $pool);
 
259
 
 
260
Similar to $client-E<gt>add3(), but with $no_ignore always set to FALSE.
 
261
 
 
262
=item $client-E<gt>add3($path, $recursive, $force, $no_ignore, $pool);
 
263
 
 
264
Similar to $client-E<gt>add4(), but with $add_parents always set to FALSE and
 
265
$depth set according to $recursive; if TRUE, then depth is
 
266
$SVN::Depth::infinity, if FALSE, then $SVN::Depth::empty.
 
267
 
 
268
=item $client-E<gt>add4($path, $depth, $force, $no_ignore, $add_parents, $pool);
256
269
 
257
270
Schedule a working copy $path for addition to the repository.
258
271
 
259
 
$path's parent must be under revision control already, but $path is not.
260
 
If $recursive is set, then assuming $path is a directory, all of its
261
 
contents will be scheduled for addition as well.
 
272
If $depth is $SVN::Depth::empty, add just $path and nothing below it.  If
 
273
$SVN::Depth::files, add $path and any file children of $path.  If 
 
274
$SVN::Depth::immediates, add $path, any file children, and any immediate
 
275
subdirectories (but nothing underneath those subdirectories).  If 
 
276
$SVN::Depth::infinity, add $path and everything under it fully recursively.
 
277
 
 
278
$path's parent must be under revision control already (unless $add_parents is
 
279
TRUE), but $path is not.
 
280
 
 
281
Unless $force is TRUE and $path is already under version control, returns an
 
282
$SVN::Error::ENTRY_EXISTS object.  If $force is set, do not error on
 
283
already-versioned items.  When used with $depth set to $SVN::Depth::infinity
 
284
it will enter versioned directories; scheduling unversioned children. 
262
285
 
263
286
Calls the notify callback for each added item.
264
287
 
 
288
If $no_ignore is FALSE, don't add any file or directory (or recurse into any
 
289
directory) that is unversioned and found by recursion (as opposed to being the
 
290
explicit target $path) and whose name matches the svn:ignore property on its
 
291
parent directory or the global-ignores list in $client->config.  If $no_ignore is
 
292
TRUE, do include such files and directories.  (Note that an svn:ignore property
 
293
can influence this behaviour only when recursing into an already versioned
 
294
directory with $force).
 
295
 
 
296
If $add_parents is TRUE, recurse up $path's directory and look for a versioned
 
297
directory.  If found, add all intermediate paths between it and $path.  If not
 
298
found return $SVN::Error::NO_VERSIONED_PARENT.
 
299
 
265
300
Important: this is a B<scheduling> operation.  No changes will happen
266
301
to the repository until a commit occurs.  This scheduling can be
267
 
removed with $ctx-E<gt>revert().
 
302
removed with $client-E<gt>revert().
268
303
 
269
304
No return.
270
305
 
271
 
=item $ctx-E<gt>blame($target, $start, $end, \&receiver, $pool);
 
306
=item $client-E<gt>blame($target, $start, $end, \&receiver, $pool);
272
307
 
273
308
Invoke \&receiver subroutine on each line-blame item associated with revision
274
309
$end of $target, using $start as the default source of all blame.
288
323
to return an error.  All other returns will be ignored.
289
324
You can create an svn_error_t object with SVN::Error::create().
290
325
 
291
 
=item $ctx-E<gt>cat(\*FILEHANDLE, $target, $revision, $pool);
 
326
=item $client-E<gt>cat(\*FILEHANDLE, $target, $revision, $pool);
292
327
 
293
328
Outputs the content of the file identified by $target and $revision to the
294
329
FILEHANDLE.  FILEHANDLE is a reference to a filehandle.
297
332
other kind that requires a local path), then an error will be raised,
298
333
because the desired revision can not be determined.
299
334
 
300
 
=item $ctx-E<gt>checkout($url, $path, $revision, $recursive, $pool);
 
335
=item $client-E<gt>checkout($url, $path, $revision, $recursive, $pool);
 
336
 
 
337
Similar to $client-E<gt>checkout2(), but with $peg_revision always set to undef (unspecified) and $ignore_externals always set to FALSE.
 
338
 
 
339
=item $client-E<gt>checkout2($url, $path, $peg_revision, $revision, $recursive, $ignore_externals, $pool);
 
340
 
 
341
Similar to $client-E<gt>checkout3(), but with $allow_unver_obstructions always set
 
342
to FALSE, and $depth set according to $recurse: if $recurse is TRUE, $depth is
 
343
$SVN::Depth::infinity, if $recurse is FALSE, set $depth to $SVN::Depth::files.
 
344
 
 
345
=item $client-E<gt>checkout3($url, $path, $preg_revision, $revision, $depth, $ignore_externals, $allow_unver_obstructions, $pool);
301
346
 
302
347
Checkout a working copy of $url at $revision using $path as the root directory
303
348
of the newly checked out working copy.
304
349
 
 
350
The $peg_revision sets the revision at which the path in the $url is treated as representing.
 
351
 
305
352
$revision must be a number, 'HEAD', or a date.  If $revision does not
306
353
meet these requirements the $SVN::Error::CLIENT_BAD_REVISION is raised.
307
354
 
 
355
$depth is one of the constants in SVN::Depth and specifies the depth of the
 
356
operation.  If set to $SVN::Depth::unknown, then behave as if for
 
357
$SVN::Depth::infinity, except in the case of resuming a previous checkout of
 
358
$path (i.e. updating) in which case use the depth of the existing working copy.
 
359
 
 
360
$ignore_exteranls if set to TRUE the operation will ignore external definitions.
 
361
 
 
362
$allow_unver_obstructions if set to TRUE the operation will tolerate existing
 
363
unversioned items that obstruct incoming paths.  Only obstructions of the same
 
364
type (file or dir) as the added item are tolerated.  The text of obstructing
 
365
files is left as-is, effectively treating it as a user modification after the
 
366
checkout.  Working properties of obstructing items are set equal to the base
 
367
properties.  If set to FALSE, then abort if there are any unversioned
 
368
obstructing items.
 
369
 
308
370
Returns the value of the revision actually checked out of the repository.
309
371
 
310
 
=item $ctx-E<gt>cleanup($dir, $pool);
 
372
=item $client-E<gt>cleanup($dir, $pool);
311
373
 
312
374
Recursively cleanup a working copy directory, $dir, finishing any incomplete
313
375
operations, removing lockfiles, etc.
314
376
 
315
 
=item $ctx-E<gt>commit($targets, $nonrecursive, $pool);
 
377
=item $client-E<gt>commit($targets, $nonrecursive, $pool);
316
378
 
317
379
Commit files or directories referenced by target.  Will use the log_msg
318
380
callback to obtain the log message for the commit.
334
396
commit information object is $SVN::Core::INVALID_REVNUM and no error was
335
397
raised, then the commit was a no-op; nothing needed to be committed.
336
398
 
337
 
=item $ctx-E<gt>copy($src_target, $src_revision, $dst_target, $pool);
 
399
=item $client-E<gt>copy($src_target, $src_revision, $dst_target, $pool);
338
400
 
339
401
Copies $src_target to $dst_target.
340
402
 
349
411
log message.  If the commit succeeds, return a svn_client_commit_info_t
350
412
object.
351
413
 
352
 
If $dst_target is not a URL, then this is just a variant of $ctx-E<gt>add(),
 
414
If $dst_target is not a URL, then this is just a variant of $client-E<gt>add(),
353
415
where the $dst_path items are scheduled for addition as copies.  No changes
354
416
will happen to the repository until a commit occurs.  This scheduling can be
355
 
removed with $ctx-E<gt>revert().  undef will be returned in this case.
 
417
removed with $client-E<gt>revert().  undef will be returned in this case.
356
418
 
357
419
Calls the notify callback for each item added at the new location, passing
358
420
the new, relative path of the added item.
359
421
 
360
 
=item $ctx-E<gt>delete($targets, $force, $pool);
 
422
=item $client-E<gt>delete($targets, $force, $pool);
361
423
 
362
424
Delete items from a repository or working copy.
363
425
 
370
432
Else, schedule the working copy paths in $targets for removal from the
371
433
repository.  Each path's parent must be under revision control.  This is
372
434
just a B<scheduling> operation.  No changes will happen to the repository
373
 
until a commit occurs.  This scheduling can be removed with $ctx-E<gt>revert().
 
435
until a commit occurs.  This scheduling can be removed with $client-E<gt>revert().
374
436
If a path is a file it is immediately removed from the working copy.  If
375
437
the path is a directory it will remain in the working copy but all the files,
376
438
and all unversioned items it contains will be removed.  If $force is not set
382
444
 
383
445
Has no return.
384
446
 
385
 
=item $ctx-E<gt>diff($diff_options, $target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, $no_diff_deleted, $outfile, $errfile, $pool);
 
447
=item $client-E<gt>diff($diff_options, $target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, $no_diff_deleted, $outfile, $errfile, $pool);
386
448
 
387
449
Produces diff output which describes the delta between $target1 at
388
450
$revision1 and $target2 at $revision2.  They both must represent the same
406
468
 
407
469
Has no return.
408
470
 
409
 
=item $ctx-E<gt>diff_summarize($target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, \&summarize_func, $pool);
 
471
=item $client-E<gt>diff_summarize($target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, \&summarize_func, $pool);
410
472
 
411
473
Produce a diff summary which lists the changed items between $target1
412
474
at $revision1 and $target2 at $revision2 without creating text deltas.
423
485
 
424
486
Has no return.
425
487
 
426
 
=item $ctx-E<gt>export($from, $to, $revision, $force, $pool);
 
488
=item $client-E<gt>export($from, $to, $revision, $force, $pool);
427
489
 
428
490
Export the contents of either a subversion repository or a subversion
429
491
working copy into a 'clean' directory (meaning a directory with no
443
505
Returns the value of the revision actually exported or
444
506
$SVN::Core::INVALID_REVNUM for local exports.
445
507
 
446
 
=item $ctx-E<gt>import($path, $url, $nonrecursive, $pool);
 
508
=item $client-E<gt>import($path, $url, $nonrecursive, $pool);
447
509
 
448
510
Import file or directory $path into repository directory $url at head.
449
511
 
471
533
 
472
534
Returns a svn_client_commit_info_t object.
473
535
 
474
 
=item $ctx-E<gt>log($targets, $start, $end, $discover_changed_paths, $strict_node_history, \&log_receiver, $pool);
475
 
 
476
 
Invoke the log_receiver subroutine on each log_message from $start to $end in
477
 
turn, inclusive (but will never invoke receiver on a given log message more
 
536
=item $client-E<gt>info($path_or_url, $peg_revision, $revision, \&receiver, $recurse);
 
537
 
 
538
Invokes \&receiver passing it information about $path_or_url for $revision.
 
539
The information returned is system-generated metadata, not the sort of
 
540
"property" metadata created by users.  For methods available on the object
 
541
passed to \&receiver, B<see svn_info_t>.
 
542
 
 
543
If both revision arguments are either svn_opt_revision_unspecified or NULL,
 
544
then information will be pulled solely from the working copy; no network
 
545
connections will be made.
 
546
 
 
547
Otherwise, information will be pulled from a repository.  The actual node
 
548
revision selected is determined by the $path_or_url as it exists in
 
549
$peg_revision.  If $peg_revision is undef, then it defaults to HEAD for URLs
 
550
or WORKING for WC targets.
 
551
 
 
552
If $path_or_url is not a local path, then if $revision is PREV (or some other
 
553
kind that requires a local path), an error will be returned, because the
 
554
desired revision cannot be determined.
 
555
 
 
556
Uses the authentication baton cached in ctx to authenticate against the
 
557
repository.
 
558
 
 
559
If $recurse is true (and $path_or_url is a directory) this will be a recursive
 
560
operation, invoking $receiver on each child.
 
561
 
 
562
 my $receiver = sub {
 
563
     my( $path, $info, $pool ) = @_;
 
564
     print "Current revision of $path is ", $info->rev, "\n";
 
565
 };
 
566
 $client->info( 'foo/bar.c', undef, 'WORKING', $receiver, 0 );
 
567
 
 
568
=item $client-E<gt>log5($targets, $peg_revision, $revision_ranges, $limit, $discover_changed_paths, $strict_node_history, $include_merged_revisions, $revprops, \&log_entry_receiver, $pool);
 
569
 
 
570
Invoke C<log_entry_receiver> on each log message from
 
571
each revision range in C<$revision_ranges> in turn,
 
572
inclusive (but never invoke C<log_entry_receiver> on a given log message more
478
573
than once).
479
574
 
480
 
$targets is a reference to an array containing all the paths or URLs for
481
 
which the log messages are desired.  The log_receiver is only invoked on
482
 
messages whose revisions involved a change to some path in $targets.
483
 
 
484
 
If $discover_changed_paths is set, then the changed_paths argument to the
485
 
log_receiver routine will be passed on each invocation.
486
 
 
487
 
If $strict_node_history is set, copy history (if any exists) will not be
488
 
traversed while harvesting revision logs for each target.
489
 
 
490
 
If $start or $end is undef the arp_err code will be set to:
491
 
$SVN::Error::CLIENT_BAD_REVISION.
492
 
 
493
 
Special case for repositories at revision 0:
494
 
 
495
 
If $start is 'HEAD' and $end is 1, then handle an empty (no revisions)
 
575
C<$targets> is a reference to an array of either a URL followed by zero 
 
576
or more relative paths, or 1 working copy path, for which log
 
577
messages are desired. If the array contains only a single element
 
578
you may set C<$targets> to this element instead.
 
579
C<log_entry_receiver> is invoked only on messages whose
 
580
revisions involved a change to some path in C<$targets>.
 
581
 
 
582
C<$peg_revision> indicates in which revision C<$targets> are valid. 
 
583
If C<$peg_revision> is C<undef>, it defaults to 'HEAD'
 
584
for URLs or 'WORKING' for WC paths.
 
585
 
 
586
C<$revision_ranges> is either a single I<revision range> or a reference
 
587
to an array of them. A I<revision range> may be specified
 
588
as a reference to a two-element array C<[$start, $end]>
 
589
of L<$revision|/$revision>s or a 
 
590
L<SVN::Core::svn_opt_revision_range_t|SVN::Core/svn_opt_revision_range_t> 
 
591
object. Examples:
 
592
 
 
593
  $revision_ranges = ['HEAD', 1];
 
594
  $revision_ranges = [[2, 3], [5, 8], [13, 21]];
 
595
 
 
596
If C<$limit> is non-zero only invoke C<log_entry_receiver> 
 
597
on the first C<$limit> logs.
 
598
 
 
599
If C<$discover_changed_paths> is true, then the I<changed_paths2> field 
 
600
in the C<$log_entry> argument to C<log_entry_receiver> will be
 
601
populated on each invocation.  I<Note:> The I<text_modified> and
 
602
I<props_modified> fields of the I<changed_paths2> structure may have the value
 
603
C<$SVN::Tristate::unknown> if the repository does not report that information.
 
604
 
 
605
If C<$strict_node_history> is true, copy history (if any exists) will
 
606
not be traversed while harvesting revision logs for each target.
 
607
 
 
608
If C<$include_merged_revisions> is true, log information for revisions
 
609
which have been merged to C<$targets> will also be returned.
 
610
 
 
611
If C<$revprops> is C<undef>, retrieve all revision properties.
 
612
Otherwise C<$revpros> should be a reference to an array of
 
613
property names and only these properties will be retrieved
 
614
(i.e. none if the array is empty).
 
615
 
 
616
Use C<$pool> for any temporary allocation.
 
617
 
 
618
Calls the notify subroutine with a C<$SVN::Wc::Notify::Action::skip> 
 
619
signal on any unversioned C<$targets>.
 
620
 
 
621
The C<log_entry_receiver> takes the following arguments:
 
622
C<$log_entry, $pool>.  C<$log_entry> is a 
 
623
L<SVN::Core::svn_log_entry_t|SVN::Core/svn_log_entry_t> object.
 
624
 
 
625
=item $client-E<gt>log4($targets, $peg_revision, $start, $end, $limit, $discover_changed_paths, $strict_node_history, $include_merged_revisions, $revprops, \&log_entry_receiver, $pool);
 
626
 
 
627
Similar to C<$client-E<gt>log5()>, 
 
628
but takes explicit C<$start> and C<$end> parameters
 
629
instead of C<$revision_ranges>.
 
630
 
 
631
Deprecated.
 
632
 
 
633
=item $client-E<gt>log3($targets, $peg_revision, $start, $end, $limit, $discover_changed_paths, $strict_node_history, \&log_message_receiver, $pool);
 
634
 
 
635
Similar to C<$client-E<gt>log4()>, but using C<log_message_receiver>
 
636
instead of C<log_entry_receiver>.  Also, C<$include_merged_revisions> 
 
637
is false and C<$revprops> is [qw( svn:author svn:date and svn:log )].
 
638
 
 
639
The C<log_message_receiver> takes the following arguments:
 
640
C<$changed_paths, $revision, $author, $date, $message, $pool>.
 
641
It is called once for each log C<$message> from the C<$revision>
 
642
on C<$date> by C<$author>.  C<$author>, C<$date> or C<$message> 
 
643
may be C<undef>.
 
644
 
 
645
If C<$changed_paths> is defined it references a hash with the keys
 
646
every path committed in C<$revision>; the values are 
 
647
L<SVN::Core::svn_log_changed_path_t|SVN::Core/svn_log_changed_path_t>
 
648
objects.
 
649
 
 
650
Deprecated.
 
651
 
 
652
=item $client-E<gt>log2($targets, $start, $end, $limit, $discover_changed_paths, $strict_node_history, \&log_message_receiver, $pool);
 
653
 
 
654
Similar to C<$client-E<gt>log3()>, but with C<$peg_revision> set to C<undef>.
 
655
 
 
656
Deprecated.
 
657
 
 
658
=item $client-E<gt>log($targets, $start, $end, $discover_changed_paths, $strict_node_history, \&log_message_receiver, $pool);
 
659
 
 
660
Similar to C<$client-E<gt>log2()>, but with C<$limit> set to 0.
 
661
 
 
662
I<Special case for repositories at revision 0:>
 
663
If C<$start> is 'HEAD' and C<$end> is 1, then handle an empty (no revisions)
496
664
repository specially: instead of erroring because requested revision 1
497
 
when the highest revision is 0, just invoke $log_receiver on revision 0,
498
 
passing undef to changed paths and empty strings for the author and date.
499
 
This is because that particular combination of $start and $end usually indicates
 
665
when the highest revision is 0, just invoke 
 
666
C<log_message_receiver> on revision 0,
 
667
passing C<undef> to C<$changed_paths> and empty strings for the author and date.
 
668
This is because that particular combination of C<$start> 
 
669
and C<$end> usually indicates
500
670
the common case of log invocation; the user wants to see all log messages from
501
671
youngest to oldest, where the oldest commit is revision 1.  That works fine,
502
672
except there are no commits in the repository, hence this special case.
503
673
 
504
 
Calls the notify subroutine with a $SVN::Wc::Notify::Action::skip signal on any
505
 
unversioned targets.
506
 
 
507
 
The log_receiver takes the following arguments:
508
 
$changed_paths, $revision, $author, $date, $message, $pool
509
 
 
510
 
It is called once for each log $message from the $revision
511
 
on $date by $author.  $author, $date or $message may be undef.
512
 
 
513
 
If $changed_paths is defined it references a hash with the keys
514
 
every path committed in $revision; the values are svn_log_changed_path_t
515
 
objects.
516
 
 
517
 
=item $ctx-E<gt>ls($target, $revision, $recursive, $pool);
 
674
Deprecated.
 
675
 
 
676
=item $client-E<gt>ls($target, $revision, $recursive, $pool);
518
677
 
519
678
Returns a hash of svn_dirent_t objects for $target at $revision.
520
679
 
526
685
If $target is non-existent, raises the $SVN::Error::FS_NOT_FOUND
527
686
error.
528
687
 
529
 
=item $ctx-E<gt>merge($src1, $rev1, $src2, $rev2, $target_wcpath, $recursive, $ignore_ancestry, $force, $dry_run, $pool);
 
688
=item $client-E<gt>merge($src1, $rev1, $src2, $rev2, $target_wcpath, $recursive, $ignore_ancestry, $force, $dry_run, $pool);
530
689
 
531
690
Merge changes from $src1/$rev1 to $src2/$rev2 into the working-copy path
532
691
$target_wcpath.
563
722
 
564
723
Has no return.
565
724
 
566
 
=item $ctx-E<gt>mkdir($targets, $pool);
 
725
=item $client-E<gt>mkdir($targets, $pool);
 
726
 
 
727
Similar to $client-E<gt>mkdir2() except it returns an svn_client_commit_info_t
 
728
object instead of a svn_commit_info_t object.
 
729
 
 
730
=item $client-E<gt>mkdir2($targets, $pool);
 
731
 
 
732
Similar to $client-E<gt>mkdir3(), but with $make_parents always FALSE, and
 
733
$revprop_hash always undef.
 
734
 
 
735
=item $client-E<gt>mkdir3($targets, $make_parents, $revprop_hash, $pool);
 
736
 
 
737
Similar to $client-E<gt>mkdir4(), but returns a svn_commit_info_t object rather
 
738
than through a callback function.
 
739
 
 
740
=item $client-E<gt>mkdir4($targets, $make_parents, $revprop_hash, \&commit_callback, $pool);
567
741
 
568
742
Create a directory, either in a repository or a working copy.
569
743
 
574
748
Else, create the directories on disk, and attempt to schedule them for addition.
575
749
In this case returns undef.
576
750
 
 
751
If $make_parents is TRUE, create any non-existant parent directories also.
 
752
 
 
753
If not undef, $revprop_hash is a reference to a hash table holding additional
 
754
custom revision properites (property names mapped to strings) to be set on the
 
755
new revision in the event that this is a committing operation.  This hash
 
756
cannot contain any standard Subversion properties.
 
757
 
 
758
Calls the log message callback to query for a commit log message when one is
 
759
needed.
 
760
 
577
761
Calls the notify callback when the directory has been created (successfully)
578
762
in the working copy, with the path of the new directory.  Note this is only
579
763
called for items added to the working copy.
580
764
 
581
 
=item $ctx-E<gt>move($src_path, $src_revision, $dst_path, $force, $pool);
 
765
If \&commit_callback is not undef, then for each successful commit, call
 
766
\&commit_callback with the svn_commit_info_t object for the commit.
 
767
 
 
768
=item $client-E<gt>move($src_path, $src_revision, $dst_path, $force, $pool);
582
769
 
583
770
Move $src_path to $dst_path.
584
771
 
605
792
not be called.
606
793
 
607
794
* This is a scheduling operation.  No changes will happen to the repository
608
 
until a commit occurs.  This scheduling can be removed with $ctx-E<gt>revert().
 
795
until a commit occurs.  This scheduling can be removed with $client-E<gt>revert().
609
796
If $src_path is a file it is removed from the working copy immediately.
610
797
If $src_path is a directory it will remain in the working copy but all
611
798
files, and unversioned items, it contains will be removed.
618
805
indicate the deletion of the moved node, and once to indicate the addition
619
806
of the new location of the node.
620
807
 
621
 
=item $ctx-E<gt>propget($propname, $target, $revision, $recursive, $pool);
 
808
=item $client-E<gt>propget($propname, $target, $revision, $recursive, $pool);
622
809
 
623
810
Returns a reference to a hash containing paths or URLs, prefixed by $target (a
624
811
working copy or URL), of items for which the property $propname is set, and
625
812
whose values represent the property value for $propname at that path.
626
813
 
627
 
=item $ctx-E<gt>proplist($target, $revision, $recursive, $pool);
 
814
=item $client-E<gt>proplist($target, $revision, $recursive, $pool);
628
815
 
629
816
Returns a reference to an array of svn_client_proplist_item_t objects.
630
817
 
641
828
 
642
829
If $target is not found, raises the $SVN::Error::ENTRY_NOT_FOUND error.
643
830
 
644
 
=item $ctx-E<gt>propset($propname, $propval, $target, $recursive, $pool);
 
831
=item $client-E<gt>propset($propname, $propval, $target, $recursive, $pool);
645
832
 
646
833
Set $propname to $propval on $target (a working copy or URL path).
647
834
 
655
842
then the caller is responsible for ensuring that $propval is UTF8-encoded
656
843
and uses LF line-endings.
657
844
 
658
 
=item $ctx-E<gt>relocate($dir, $from, $to, $recursive, $pool);
 
845
=item $client-E<gt>relocate($dir, $from, $to, $recursive, $pool);
659
846
 
660
847
Modify a working copy directory $dir, changing any repository URLs that
661
848
begin with $from to begin with $to instead, recursing into subdirectories if
663
850
 
664
851
Has no return.
665
852
 
666
 
=item $ctx-E<gt>resolved($path, $recursive, $pool);
 
853
=item $client-E<gt>resolved($path, $recursive, $pool);
667
854
 
668
855
Removed the 'conflicted' state on a working copy path.
669
856
 
677
864
If $path's conflict state is removed, call the notify callback with the
678
865
$path.
679
866
 
680
 
=item $ctx-E<gt>revert($paths, $recursive, $pool);
 
867
=item $client-E<gt>revert($paths, $recursive, $pool);
681
868
 
682
869
Restore the pristine version of a working copy $paths, effectively undoing
683
870
any local mods.
685
872
For each path in $paths, if it is a directory and $recursive
686
873
is true, this will be a recursive operation.
687
874
 
688
 
=item $ctx-E<gt>revprop_get($propname, $url, $revision, $pool);
 
875
=item $client-E<gt>revprop_get($propname, $url, $revision, $pool);
689
876
 
690
877
Returns two values, the first of which is the value of $propname on revision
691
878
$revision in the repository represented by $url.  The second value is the
692
879
actual revision queried.
693
880
 
694
 
Note that unlike its cousin $ctx-E<gt>propget(), this routine doesn't affect
 
881
Note that unlike its cousin $client-E<gt>propget(), this routine doesn't affect
695
882
working copy at all; it's a pure network operation that queries an
696
883
B<unversioned> property attached to a revision.  This can be used to query
697
884
log messages, dates, authors, and the like.
698
885
 
699
 
=item $ctx-E<gt>revprop_list($url, $revision, $pool);
 
886
=item $client-E<gt>revprop_list($url, $revision, $pool);
700
887
 
701
888
Returns two values, the first of which is a reference to a hash containing
702
889
the properties attached to $revision in the repository represented by $url.
703
890
The second value is the actual revision queried.
704
891
 
705
 
Note that unlike its cousin $ctx-E<gt>proplist(), this routine doesn't read a
 
892
Note that unlike its cousin $client-E<gt>proplist(), this routine doesn't read a
706
893
working copy at all; it's a pure network operation that reads B<unversioned>
707
894
properties attached to a revision.
708
895
 
709
 
=item $ctx-E<gt>revprop_set($propname, $propval, $url, $revision, $force, $pool);
 
896
=item $client-E<gt>revprop_set($propname, $propval, $url, $revision, $force, $pool);
710
897
 
711
898
Set $propname to $propval on revision $revision in the repository represented
712
899
by $url.
720
907
the caller is responsible for ensuring that the value is UTF8-encoded and
721
908
uses LF line-endings.
722
909
 
723
 
Note that unlike its cousin $ctx-E<gt>propset(), this routine doesn't affect
 
910
Note that unlike its cousin $client-E<gt>propset(), this routine doesn't affect
724
911
the working copy at all; it's a pure network operation that changes an
725
912
B<unversioned> property attached to a revision.  This can be used to tweak
726
913
log messages, dates, authors, and the like.  Be careful: it's a lossy
730
917
Also note that unless the administrator creates a pre-revprop-change hook
731
918
in the repository, this feature will fail.
732
919
 
733
 
=item $ctx-E<gt>status($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $pool);
 
920
=item $client-E<gt>status($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $pool);
 
921
 
 
922
Similar to $client-E<gt>status2(), but with ignore_externals always set to FALSE, and with the status_func receiving a svn_wc_status2_t instead of a svn_wc_status_t object.
 
923
 
 
924
=item $client-E<gt>status2($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $ignore_externals, $pool);
 
925
 
 
926
Similar to $client-E<gt>status3(), but with the changelists passed as undef, and with recursive instead of depth.
 
927
 
 
928
=item $client-E<gt>status3($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
 
929
 
 
930
Similar to $client-E<gt>status4(), without the pool parameter to the callback and the return of the callback is ignored. 
 
931
 
 
932
=item $client-E<gt>status4($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
734
933
 
735
934
Given $path to a working copy directory (or single file), call status_func()
736
 
with a set of svn_wc_status_t objects which describe the status of $path and
 
935
with a set of svn_wc_status2_t objects which describe the status of $path and
737
936
its children.
738
937
 
739
938
If $recursive is true, recurse fully, else do only immediate children.
746
945
return the value of the actual revision against with the working copy was
747
946
compared.  (The return will be undef if $update is not set).
748
947
 
749
 
The function recurses into externals definitions ('svn:externals') after
750
 
handling the main target, if any exist.  The function calls the notify callback
751
 
with $SVN::Wc::Notify::Action::status_external action before handling each
752
 
externals definition, and with $SVN::Wc::Notify::Action::status_completed
753
 
after each.
 
948
Unless ignore_externals is set, the function recurses into externals definitions
 
949
('svn:externals') after handling the main target, if any exist.  The function
 
950
calls the notify callback with $SVN::Wc::Notify::Action::status_external action
 
951
before handling each externals definition, and with 
 
952
$SVN::Wc::Notify::Action::status_completed after each.
 
953
 
 
954
$changelists is a reference to an array of changelist names, used as a restrictive filter on items whose statuses are reported; that is don't report status about any item unless it's a member of those changelists.  If changelists is empty (or altogether undef), no changelist filtering occurs.
754
955
 
755
956
The status_func subroutine takes the following parameters:
756
 
$path, $status
 
957
$path, $status, $pool
757
958
 
758
959
$path is the pathname of the file or directory which status is being
759
 
reported.  $status is a svn_wc_status_t object.
760
 
 
761
 
The return of the status_func subroutine is ignored.
762
 
 
763
 
=item $ctx-E<gt>info($path_or_url, $peg_revision, $revision, \&receiver, $recurse);
764
 
 
765
 
Invokes \&receiver passing it information about $path_or_url for $revision.
766
 
The information returned is system-generated metadata, not the sort of
767
 
"property" metadata created by users.  For methods available on the object
768
 
passed to \&receiver, B<see svn_info_t>.
769
 
 
770
 
If both revision arguments are either svn_opt_revision_unspecified or NULL,
771
 
then information will be pulled solely from the working copy; no network
772
 
connections will be made.
773
 
 
774
 
Otherwise, information will be pulled from a repository.  The actual node
775
 
revision selected is determined by the $path_or_url as it exists in
776
 
$peg_revision.  If $peg_revision is undef, then it defaults to HEAD for URLs
777
 
or WORKING for WC targets.
778
 
 
779
 
If $path_or_url is not a local path, then if $revision is PREV (or some other
780
 
kind that requires a local path), an error will be returned, because the
781
 
desired revision cannot be determined.
782
 
 
783
 
Uses the authentication baton cached in ctx to authenticate against the
784
 
repository.
785
 
 
786
 
If $recurse is true (and $path_or_url is a directory) this will be a recursive
787
 
operation, invoking $receiver on each child.
788
 
 
789
 
 my $receiver = sub {
790
 
     my( $path, $info, $pool ) = @_;
791
 
     print "Current revision of $path is ", $info->rev, "\n";
792
 
 };
793
 
 $ctx->info( 'foo/bar.c', undef, 'WORKING', $receiver, 0 );
794
 
 
795
 
=item $ctx-E<gt>switch($path, $url, $revision, $recursive, $pool);
 
960
reported.  $status is a svn_wc_status2_t object.  $pool is an apr_pool_t
 
961
object which is cleaned beteween invocations to the callback.
 
962
 
 
963
The return of the status_func subroutine can be a svn_error_t object created by
 
964
SVN::Error::create in order to propogate an error up.
 
965
 
 
966
=item $client-E<gt>switch($path, $url, $revision, $recursive, $pool);
796
967
 
797
968
Switch working tree $path to $url at $revision.
798
969
 
811
982
Returns the value of the revision to which the working copy was actually
812
983
switched.
813
984
 
814
 
=item $ctx-E<gt>update($path, $revision, $recursive, $pool)
815
 
 
816
 
Update a working copy $path to $revision.
 
985
=item $client-E<gt>update($path, $revision, $recursive, $pool)
 
986
 
 
987
Similar to $client-E<gt>update2() except that it accepts only a single target in
 
988
$path, returns a single revision, and $ignore_externals is always set to FALSE.
 
989
 
 
990
=item $client-E<gt>update2($paths, $revision, $recursive, $ignore_externals, $pool)
 
991
 
 
992
Similar to $client-E<gt>update3() but with $allow_unver_obstructions always set to
 
993
FALSE, $depth_is_sticky to FALSE, and $depth set according to $recursive: if
 
994
$recursive is TRUE, set $depth to $SVN::Depth::infinity, if $recursive is
 
995
FALSE, set $depth to $SVN::Depth::files.
 
996
 
 
997
=item $client-E<gt>update3($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $pool)
 
998
 
 
999
Similar to $client-E<gt>update4() but with $make_parents always set to FALSE and
 
1000
$adds_as_modification set to TRUE.
 
1001
 
 
1002
=item $client-E<gt>update4($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $adds_as_modification, $make_parents)
 
1003
 
 
1004
Update working trees $paths to $revision.
 
1005
 
 
1006
$paths is a array reference of paths to be updated.  Unversioned paths that are
 
1007
the direct children of a versioned path will cause an update that attempts to
 
1008
add that path; other unversioned paths are skipped.
817
1009
 
818
1010
$revision must be a revision number, 'HEAD', or a date or this method will
819
1011
raise the $SVN::Error::CLIENT_BAD_REVISION error.
820
1012
 
 
1013
The paths in $paths can be from multiple working copies from multiple
 
1014
repositories, but even if they all come from the same repository there is no
 
1015
guarantee that revision represented by 'HEAD' will remain the same as each path
 
1016
is updated.
 
1017
 
 
1018
If $ignore_externals is set, don't process externals definitions as part of
 
1019
this operation.
 
1020
 
 
1021
If $depth is $SVN::Depth::infinity, update fully recursivelly.  Else if it is
 
1022
$SVN::Depth::immediates or $SVN::Depth::files, update each target and its file
 
1023
entries, but not its subdirectories.  Else if $SVN::Depth::empty, update
 
1024
exactly each target, nonrecursively (essentially, update the target's
 
1025
properties).
 
1026
 
 
1027
If $depth is $SVN::Depth::unknown, take the working depth from $paths and then
 
1028
describe as behaved above.
 
1029
 
 
1030
If $depth_is_sticky is set and $depth is not $SVN::Depth::unknown, then in
 
1031
addition to update paths, also set their sticky ambient depth value to $depth.
 
1032
 
 
1033
If $allow_unver_obstructions is TRUE then the update tolerates existing 
 
1034
unversioned items that obstruct added paths.  Only obstructions of the same
 
1035
type (file or dir) as the added item are tolerated.  The text of obstructing
 
1036
files is left as-is, effectively treating it as a user modification after the
 
1037
update.  Working properties of obstructing items are set equal to the base
 
1038
properties.  If $allow_unver_obstructions is FALSE then the update will abort
 
1039
if there are any unversioned obstructing items.
 
1040
 
 
1041
If $adds_as_modification is TRUE, a local addition at the same path as an 
 
1042
incoming addition of the same node kind results in a normal node with a
 
1043
possible local modification, instead of a tree conflict.
 
1044
 
 
1045
If $make_parents is TRUE, create any non-existent parent directories also by
 
1046
checking them out at depth=empty.
 
1047
 
821
1048
Calls the notify callback for each item handled by the update, and
822
1049
also for files restored from the text-base.
823
1050
 
824
 
Returns the revision to which the working copy was actually updated.
825
 
 
826
 
 
827
 
=item $ctx-E<gt>url_from_path($target, $pool); or SVN::Client::url_from_path($target, $pool);
 
1051
Returns an array reference to an array of revision numbers with each element
 
1052
set to the revision to which $revision was resolved for the corresponding
 
1053
element of $paths.
 
1054
 
 
1055
 
 
1056
=item $client-E<gt>url_from_path($target, $pool); or SVN::Client::url_from_path($target, $pool);
828
1057
 
829
1058
Returns the URL for $target.
830
1059
 
834
1063
 
835
1064
If $target is unversioned (has no entry), returns undef.
836
1065
 
837
 
=item $ctx-E<gt>uuid_from_path($path, $adm_access, $pool);
 
1066
=item $client-E<gt>uuid_from_path($path, $adm_access, $pool);
838
1067
 
839
1068
Return the repository uuid for working-copy $path, allocated in $pool.
840
1069
 
841
1070
Use $adm_access to retrieve the uuid from $path's entry; if not present in the
842
 
entry, then call $ctx-E<gt>uuid_from_url() to retrieve, using the entry's URL.
 
1071
entry, then call $client-E<gt>uuid_from_url() to retrieve, using the entry's URL.
843
1072
 
844
 
Note: The only reason this function falls back on $ctx-E<gt>uuid_from_url is for
 
1073
Note: The only reason this function falls back on $client-E<gt>uuid_from_url is for
845
1074
compatibility purposes.  Old working copies may not have uuids in the entries
846
1075
files.
847
1076
 
848
1077
Note: This method probably doesn't work right now without a lot of pain,
849
1078
because SVN::Wc is incomplete and it requires an adm_access object from it.
850
1079
 
851
 
=item $ctx-E<gt>uuid_from_url($url, $pool);
 
1080
=item $client-E<gt>uuid_from_url($url, $pool);
852
1081
 
853
1082
Return repository uuid for url.
854
1083
 
857
1086
=cut
858
1087
 
859
1088
# import methods into our name space and wrap them in a closure
860
 
# to support method calling style $ctx->log()
 
1089
# to support method calling style $client->log()
861
1090
foreach my $function (@_all_fns)
862
1091
{
863
1092
    no strict 'refs';
937
1166
 
938
1167
=over 4
939
1168
 
940
 
=item $ctx-E<gt>auth(SVN::Client::get_username_provider());
 
1169
=item $client-E<gt>auth(SVN::Client::get_username_provider());
941
1170
 
942
1171
Provides access to the auth_baton in the svn_client_ctx_t attached to the
943
1172
SVN::Client object.
978
1207
    return $self->{'ctx'}->auth_baton();
979
1208
}
980
1209
 
981
 
=item $ctx-E<gt>notify(\&notify);
 
1210
=item $client-E<gt>notify(\&notify);
982
1211
 
983
1212
Sets the notify callback for the client context to a code reference that
984
1213
you pass.  It always returns the current codereference set.
1009
1238
    return ${$self->{'notify_callback'}};
1010
1239
}
1011
1240
 
1012
 
=item $ctx-E<gt>log_msg(\&log_msg)
 
1241
=item $client-E<gt>log_msg(\&log_msg)
1013
1242
 
1014
1243
Sets the log_msg callback for the client context to a code reference that you
1015
1244
pass.  It always returns the current codereference set.
1042
1271
    return ${$self->{'log_msg_callback'}};
1043
1272
}
1044
1273
 
1045
 
=item $ctx-E<gt>cancel(\&cancel)
 
1274
=item $client-E<gt>cancel(\&cancel)
1046
1275
 
1047
1276
Sets the cancellation callback for the client context to a code reference that you
1048
1277
pass.  It always returns the current codereference set.
1075
1304
    return ${$self->{'cancel_callback'}};
1076
1305
}
1077
1306
 
1078
 
=item $ctx-E<gt>pool(new SVN::Pool);
 
1307
=item $client-E<gt>pool(new SVN::Pool);
1079
1308
 
1080
1309
Method that sets or gets the default pool that is passed to method calls
1081
1310
requiring a pool, but which were not explicitly passed one.
1096
1325
        return $self->{'pool'} = shift;
1097
1326
    }
1098
1327
}
1099
 
=item $ctx-E<gt>config(SVN::Core::config_get_config(undef));
 
1328
=item $client-E<gt>config(SVN::Core::config_get_config(undef));
1100
1329
 
1101
1330
Method that allows access to the config member of the svn_client_ctx_t.
1102
1331
Accepts a Perl hash to set, which is what functions like
1265
1494
 
1266
1495
=over 8
1267
1496
 
1268
 
=item $info->URL()
 
1497
=item $info-E<gt>URL()
1269
1498
 
1270
1499
Where the item lives in the repository.
1271
1500
 
1272
 
=item $info->rev()
 
1501
=item $info-E<gt>rev()
1273
1502
 
1274
1503
The revision of the object.  If path_or_url is a working-copy
1275
1504
path, then this is its current working revnum.  If path_or_url
1276
1505
is a URL, then this is the repos revision that path_or_url lives in.
1277
1506
 
1278
 
=item $info->kind()
 
1507
=item $info-E<gt>kind()
1279
1508
 
1280
1509
The node's kind.
1281
1510
 
1282
 
=item $info->repos_root_URL()
 
1511
=item $info-E<gt>repos_root_URL()
1283
1512
 
1284
1513
The root URL of the repository.
1285
1514
 
1286
 
=item $info->repos_UUID()
 
1515
=item $info-E<gt>repos_UUID()
1287
1516
 
1288
1517
The repository's UUID.
1289
1518
 
1290
 
=item $info->last_changed_rev()
 
1519
=item $info-E<gt>last_changed_rev()
1291
1520
 
1292
1521
The last revision in which this object changed.
1293
1522
 
1294
 
=item $info->last_changed_date()
 
1523
=item $info-E<gt>last_changed_date()
1295
1524
 
1296
1525
The date of the last_changed_rev.
1297
1526
 
1298
 
=item $info->last_changed_author()
 
1527
=item $info-E<gt>last_changed_author()
1299
1528
 
1300
1529
The author of the last_changed_rev.
1301
1530
 
1302
 
=item $info->lock()
 
1531
=item $info-E<gt>lock()
1303
1532
 
1304
1533
An exclusive lock, if present.  Could be either local or remote.
1305
1534
 
1311
1540
 
1312
1541
=over 8
1313
1542
 
1314
 
=item $info->has_wc_info()
1315
 
 
1316
 
=item $info->schedule()
1317
 
 
1318
 
=item $info->copyfrom_url()
1319
 
 
1320
 
=item $info->copyfrom_rev()
1321
 
 
1322
 
=item $info->text_time()
1323
 
 
1324
 
=item $info->prop_time()
1325
 
 
1326
 
=item $info->checksum()
1327
 
 
1328
 
=item $info->conflict_old()
1329
 
 
1330
 
=item $info->conflict_new()
1331
 
 
1332
 
=item $info->conflict_wrk()
1333
 
 
1334
 
=item $info->prejfile()
 
1543
=item $info-E<gt>has_wc_info()
 
1544
 
 
1545
=item $info-E<gt>schedule()
 
1546
 
 
1547
=item $info-E<gt>copyfrom_url()
 
1548
 
 
1549
=item $info-E<gt>copyfrom_rev()
 
1550
 
 
1551
=item $info-E<gt>text_time()
 
1552
 
 
1553
=item $info-E<gt>prop_time()
 
1554
 
 
1555
=item $info-E<gt>checksum()
 
1556
 
 
1557
=item $info-E<gt>conflict_old()
 
1558
 
 
1559
=item $info-E<gt>conflict_new()
 
1560
 
 
1561
=item $info-E<gt>conflict_wrk()
 
1562
 
 
1563
=item $info-E<gt>prejfile()
1335
1564
 
1336
1565
=back
1337
1566
 
1344
1573
 
1345
1574
=over 8
1346
1575
 
1347
 
=item $citem-E<gt>path()
 
1576
=item $commit_item-E<gt>path()
1348
1577
 
1349
1578
Absolute working-copy path of item.
1350
1579
 
1351
 
=item $citem-E<gt>kind()
 
1580
=item $commit_item-E<gt>kind()
1352
1581
 
1353
1582
An integer representing the type of node it is (file/dir).
1354
1583
Can be one of the following constants:
1357
1586
$SVN::Node::dir
1358
1587
$SVN::Node::unknown
1359
1588
 
1360
 
=item $citem-E<gt>url()
 
1589
=item $commit_item-E<gt>url()
1361
1590
 
1362
1591
Commit URL for this item.
1363
1592
 
1364
 
=item $citem-E<gt>revision()
 
1593
=item $commit_item-E<gt>revision()
1365
1594
 
1366
1595
Revision (copyfrom_rev if state_flags has IS_COPY set).
1367
1596
 
1368
 
=item $citem-E<gt>copyform_url();
 
1597
=item $commit_item-E<gt>copyform_url();
1369
1598
 
1370
1599
CopyFrom URL
1371
1600
 
1372
 
=item $citem-E<gt>state_flags();
 
1601
=item $commit_item-E<gt>state_flags();
1373
1602
 
1374
1603
One of several state flags:
1375
1604
$SVN::Client::COMMIT_ITEM_ADD
1378
1607
$SVN::Client::COMMIT_ITEM_PROP_MODS
1379
1608
$SVN::Client::COMMIT_ITEM_IS_COPY
1380
1609
 
1381
 
=item $citem>incoming_prop_changes()
 
1610
=item $commit_item-E<gt>incoming_prop_changes()
1382
1611
 
1383
1612
A reference to an array of svn_prop_t objects representing changes to
1384
1613
WC properties.
1385
1614
 
1386
 
=item $citem>outgoing_prop_changes()
 
1615
=item $commit_item-E<gt>outgoing_prop_changes()
1387
1616
 
1388
1617
A reference to an array of svn_prop_t objects representing extra
1389
1618
changes to properties in the repository (which are not necessarily
1400
1629
 
1401
1630
=over 4
1402
1631
 
1403
 
=item $cinfo-E<gt>revision()
 
1632
=item $commit_info-E<gt>revision()
1404
1633
 
1405
1634
Just committed revision.
1406
1635
 
1407
 
=item $cinfo-E<gt>date()
 
1636
=item $commit_info-E<gt>date()
1408
1637
 
1409
1638
Server-Side date of the commit as a string.
1410
1639
 
1411
 
=item $cinfo-E<gt>author()
 
1640
=item $commit_info-E<gt>author()
1412
1641
 
1413
1642
Author of the commit.
1414
1643
 
1476
1705
 
1477
1706
=back
1478
1707
 
 
1708
=head2 ADDITIONAL METHODS
 
1709
 
 
1710
The following methods work, but are not currently documented in this
 
1711
file.  Please consult the svn_client.h section in the Subversion API
 
1712
for more details.
 
1713
 
 
1714
=over 4
 
1715
 
 
1716
=item $client-E<gt>add_to_changelist(...)
 
1717
 
 
1718
=item $client-E<gt>blame2(...)
 
1719
 
 
1720
=item $client-E<gt>blame3(...)
 
1721
 
 
1722
=item $client-E<gt>blame4(...)
 
1723
 
 
1724
=item $client-E<gt>cat2(...)
 
1725
 
 
1726
=item $client-E<gt>commit2(...)
 
1727
 
 
1728
=item $client-E<gt>commit3(...)
 
1729
 
 
1730
=item $client-E<gt>commit4(...)
 
1731
 
 
1732
=item $client-E<gt>copy2(...)
 
1733
 
 
1734
=item $client-E<gt>copy3(...)
 
1735
 
 
1736
=item $client-E<gt>copy4(...)
 
1737
 
 
1738
=item $client-E<gt>create_context(...)
 
1739
 
 
1740
=item $client-E<gt>delete2(...)
 
1741
 
 
1742
=item $client-E<gt>delete3(...)
 
1743
 
 
1744
=item $client-E<gt>diff2(...)
 
1745
 
 
1746
=item $client-E<gt>diff3(...)
 
1747
 
 
1748
=item $client-E<gt>diff4(...)
 
1749
 
 
1750
=item $client-E<gt>diff_peg(...)
 
1751
 
 
1752
=item $client-E<gt>diff_peg2(...)
 
1753
 
 
1754
=item $client-E<gt>diff_peg3(...)
 
1755
 
 
1756
=item $client-E<gt>diff_peg4(...)
 
1757
 
 
1758
=item $client-E<gt>diff_summarize2(...)
 
1759
 
 
1760
=item $client-E<gt>diff_summarize_dup(...)
 
1761
 
 
1762
=item $client-E<gt>diff_summarize_peg(...)
 
1763
 
 
1764
=item $client-E<gt>diff_summarize_peg2(...)
 
1765
 
 
1766
=item $client-E<gt>export2(...)
 
1767
 
 
1768
=item $client-E<gt>export3(...)
 
1769
 
 
1770
=item $client-E<gt>export4(...)
 
1771
 
 
1772
=item $client-E<gt>import2(...)
 
1773
 
 
1774
=item $client-E<gt>import3(...)
 
1775
 
 
1776
=item $client-E<gt>info2(...)
 
1777
 
 
1778
=item $client-E<gt>invoke_blame_receiver(...)
 
1779
 
 
1780
=item $client-E<gt>invoke_blame_receiver2(...)
 
1781
 
 
1782
=item $client-E<gt>invoke_diff_summarize_func(...)
 
1783
 
 
1784
=item $client-E<gt>list(...)
 
1785
 
 
1786
=item $client-E<gt>list2(...)
 
1787
 
 
1788
=item $client-E<gt>ls2(...)
 
1789
 
 
1790
=item $client-E<gt>ls3(...)
 
1791
 
 
1792
=item $client-E<gt>merge2(...)
 
1793
 
 
1794
=item $client-E<gt>merge3(...)
 
1795
 
 
1796
=item $client-E<gt>merge_peg(...)
 
1797
 
 
1798
=item $client-E<gt>merge_peg2(...)
 
1799
 
 
1800
=item $client-E<gt>merge_peg3(...)
 
1801
 
 
1802
=item $client-E<gt>move2(...)
 
1803
 
 
1804
=item $client-E<gt>move3(...)
 
1805
 
 
1806
=item $client-E<gt>move4(...)
 
1807
 
 
1808
=item $client-E<gt>move5(...)
 
1809
 
 
1810
=item $client-E<gt>open_ra_session(...)
 
1811
 
 
1812
=item $client-E<gt>propget2(...)
 
1813
 
 
1814
=item $client-E<gt>propget3(...)
 
1815
 
 
1816
=item $client-E<gt>proplist2(...)
 
1817
 
 
1818
=item $client-E<gt>proplist3(...)
 
1819
 
 
1820
=item $client-E<gt>propset2(...)
 
1821
 
 
1822
=item $client-E<gt>propset3(...)
 
1823
 
 
1824
=item $client-E<gt>remove_from_changelist(...)
 
1825
 
 
1826
=item $client-E<gt>resolve(...)
 
1827
 
 
1828
=item $client-E<gt>revert2(...)
 
1829
 
 
1830
=item $client-E<gt>switch2(...)
 
1831
 
 
1832
=item $client-E<gt>unlock(...)
 
1833
 
 
1834
=item $client-E<gt>version(...)
 
1835
 
 
1836
=back
 
1837
 
1479
1838
=head1 TODO
1480
1839
 
1481
1840
* Better support for the config.