Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/bindings/swig/perl/native/Client.pm view on Meta::CPAN
$src_target. $dst_path must be a file or directory under version control,
or a repository URL, existing or not.
If $dst_target is a URL, immediately attempt to commit the copy action
to the repository. The log_msg callback will be called to query for a commit
log message. If the commit succeeds, return a svn_client_commit_info_t
object.
If $dst_target is not a URL, then this is just a variant of $client-E<gt>add(),
where the $dst_path items are scheduled for addition as copies. No changes
will happen to the repository until a commit occurs. This scheduling can be
removed with $client-E<gt>revert(). undef will be returned in this case.
Calls the notify callback for each item added at the new location, passing
the new, relative path of the added item.
=item $client-E<gt>delete($targets, $force, $pool);
Delete items from a repository or working copy.
If the paths in $targets are URLs, immediately attempt to commit a deletion
of the URLs from the repository. The log_msg callback will be called to
query for a commit log message. If the commit succeeds, return a
svn_client_commit_info_t object. Every path must belong to the same
repository.
Else, schedule the working copy paths in $targets for removal from the
repository. Each path's parent must be under revision control. This is
just a B<scheduling> operation. No changes will happen to the repository
until a commit occurs. This scheduling can be removed with $client-E<gt>revert().
If a path is a file it is immediately removed from the working copy. If
the path is a directory it will remain in the working copy but all the files,
and all unversioned items it contains will be removed. If $force is not set
then this operation will fail if any path contains locally modified and/or
unversioned items. If $force is set such items will be deleted.
The notify callback is called for each item deleted with the path of
the deleted item.
Has no return.
=item $client-E<gt>diff($diff_options, $target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, $no_diff_deleted, $outfile, $errfile, $pool);
Produces diff output which describes the delta between $target1 at
$revision1 and $target2 at $revision2. They both must represent the same
node type (i.e. they most both be directories or files). The revisions
must not be undef.
Prints the output of the diff to the filename or filehandle passed as
$outfile, and any errors to the filename or filehandle passed as $errfile.
Use $ignore_ancestry to control whether or not items being diffed will be
checked for relatedness first. Unrelated items are typically transmitted to
the editor as a deletion of one thing and the addition of another, but if this
flag is true, unrelated items will be diffed as if they were related.
If $no_diff_deleted is true, then no diff output will be generated on deleted
files.
$diff_options is a reference to an array of additional arguments to pass to
diff process invoked to compare files. You'll usually just want to use [] to
pass an empty array to return a unified context diff (like `diff -u`).
Has no return.
=item $client-E<gt>diff_summarize($target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, \&summarize_func, $pool);
Produce a diff summary which lists the changed items between $target1
at $revision1 and $target2 at $revision2 without creating text deltas.
$target1 and $target2 can be either working-copy paths or URLs.
The function may report false positives if $ignore_ancestry is false,
since a file might have been modified between two revisions, but still
have the same contents.
Calls \&summarize_func with with a svn_client_diff_summarize_t structure
describing the difference.
See diff() for a description of the other parameters.
Has no return.
=item $client-E<gt>export($from, $to, $revision, $force, $pool);
Export the contents of either a subversion repository or a subversion
working copy into a 'clean' directory (meaning a directory with no
administrative directories).
$from is either the path to the working copy on disk, or a URL
to the repository you wish to export.
$to is the path to the directory where you wish to create the exported
tree.
$revision is the revision that should be exported, which is only used
when exporting from a repository. It may be undef otherwise.
The notify callback will be called for the items exported.
Returns the value of the revision actually exported or
$SVN::Core::INVALID_REVNUM for local exports.
=item $client-E<gt>import($path, $url, $nonrecursive, $pool);
Import file or directory $path into repository directory $url at head.
If some components of $url do not exist then create parent directories
as necessary.
If $path is a directory, the contents of that directory are imported
directly into the directory identified by $url. Note that the directory
$path itself is not imported; that is, the basename of $path is not part
of the import.
If $path is a file, then the dirname of $url is the directory receiving the
import. The basename of $url is the filename in the repository. In this case
if $url already exists, raise an error.
The notify callback (if defined) will be called as the import progresses, with
any of the following actions: $SVN::Wc::Notify::Action::commit_added,
$SVN::Wc::Notify::Action::commit_postfix_txdelta.
src/subversion/subversion/bindings/swig/perl/native/Client.pm view on Meta::CPAN
$path is the pathname of the file or directory which status is being
reported. $status is a svn_wc_status2_t object. $pool is an apr_pool_t
object which is cleaned beteween invocations to the callback.
The return of the status_func subroutine can be a svn_error_t object created by
SVN::Error::create in order to propogate an error up.
=item $client-E<gt>switch($path, $url, $revision, $recursive, $pool);
Switch working tree $path to $url at $revision.
$revision must be a number, 'HEAD', or a date, otherwise it raises the
$SVN::Error::CLIENT_BAD_REVISION error.
Calls the notify callback on paths affected by the switch. Also invokes
the callback for files that may be restored from the text-base because they
were removed from the working copy.
Summary of purpose: This is normally used to switch a working directory
over to another line of development, such as a branch or a tag. Switching
an existing working directory is more efficient than checking out $url from
scratch.
Returns the value of the revision to which the working copy was actually
switched.
=item $client-E<gt>update($path, $revision, $recursive, $pool)
Similar to $client-E<gt>update2() except that it accepts only a single target in
$path, returns a single revision, and $ignore_externals is always set to FALSE.
=item $client-E<gt>update2($paths, $revision, $recursive, $ignore_externals, $pool)
Similar to $client-E<gt>update3() but with $allow_unver_obstructions always set to
FALSE, $depth_is_sticky to FALSE, and $depth set according to $recursive: if
$recursive is TRUE, set $depth to $SVN::Depth::infinity, if $recursive is
FALSE, set $depth to $SVN::Depth::files.
=item $client-E<gt>update3($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $pool)
Similar to $client-E<gt>update4() but with $make_parents always set to FALSE and
$adds_as_modification set to TRUE.
=item $client-E<gt>update4($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $adds_as_modification, $make_parents)
Update working trees $paths to $revision.
$paths is a array reference of paths to be updated. Unversioned paths that are
the direct children of a versioned path will cause an update that attempts to
add that path; other unversioned paths are skipped.
$revision must be a revision number, 'HEAD', or a date or this method will
raise the $SVN::Error::CLIENT_BAD_REVISION error.
The paths in $paths can be from multiple working copies from multiple
repositories, but even if they all come from the same repository there is no
guarantee that revision represented by 'HEAD' will remain the same as each path
is updated.
If $ignore_externals is set, don't process externals definitions as part of
this operation.
If $depth is $SVN::Depth::infinity, update fully recursivelly. Else if it is
$SVN::Depth::immediates or $SVN::Depth::files, update each target and its file
entries, but not its subdirectories. Else if $SVN::Depth::empty, update
exactly each target, nonrecursively (essentially, update the target's
properties).
If $depth is $SVN::Depth::unknown, take the working depth from $paths and then
describe as behaved above.
If $depth_is_sticky is set and $depth is not $SVN::Depth::unknown, then in
addition to update paths, also set their sticky ambient depth value to $depth.
If $allow_unver_obstructions is TRUE then the update tolerates existing
unversioned items that obstruct added paths. Only obstructions of the same
type (file or dir) as the added item are tolerated. The text of obstructing
files is left as-is, effectively treating it as a user modification after the
update. Working properties of obstructing items are set equal to the base
properties. If $allow_unver_obstructions is FALSE then the update will abort
if there are any unversioned obstructing items.
If $adds_as_modification is TRUE, a local addition at the same path as an
incoming addition of the same node kind results in a normal node with a
possible local modification, instead of a tree conflict.
If $make_parents is TRUE, create any non-existent parent directories also by
checking them out at depth=empty.
Calls the notify callback for each item handled by the update, and
also for files restored from the text-base.
Returns an array reference to an array of revision numbers with each element
set to the revision to which $revision was resolved for the corresponding
element of $paths.
=item $client-E<gt>url_from_path($target, $pool); or SVN::Client::url_from_path($target, $pool);
Returns the URL for $target.
If $target is already a URL it returns $target.
If $target is a versioned item, it returns $target's entry URL.
If $target is unversioned (has no entry), returns undef.
=item $client-E<gt>uuid_from_path($path, $adm_access, $pool);
Return the repository uuid for working-copy $path, allocated in $pool.
Use $adm_access to retrieve the uuid from $path's entry; if not present in the
entry, then call $client-E<gt>uuid_from_url() to retrieve, using the entry's URL.
Note: The only reason this function falls back on $client-E<gt>uuid_from_url is for
compatibility purposes. Old working copies may not have uuids in the entries
files.
Note: This method probably doesn't work right now without a lot of pain,
because SVN::Wc is incomplete and it requires an adm_access object from it.
( run in 3.161 seconds using v1.01-cache-2.11-cpan-97f6503c9c8 )