Added subversion to remove java, keyring, and wallet options

This commit is contained in:
Mike Staszel 2010-05-25 18:21:24 -05:00
parent 01c25bff89
commit be9f26c325
16 changed files with 7011 additions and 0 deletions

View file

@ -0,0 +1,66 @@
2009-12-27 Ionut Biru <ionut@archlinux.ro>
* subversion 1.6.6-3: adding svn bash completion script
2009-08-07 Douglas Soares de Andrade <douglas@archlinux.org>
* Updated to: 1.6.4
2009-08-02 Eric Belanger <eric@archlinux.org>
* subversion 1.6.3-2: Rebuilt against ruby 1.9
2009-06-07 Douglas Soares de Andrade <douglas@archlinux.org>
* Now hopefully fixed git issues
2009-05-16 Douglas Soares de Andrade <douglas@archlinux.org>
* Fixing wrong link against ruby 1.9
2009-05-11 Douglas Soares de Andrade <douglas@archlinux.org>
* Updated for i686: 1.6.2
2009-04-17 Douglas Soares de Andrade <douglas@archlinux.org>
* Back to use svnmerge.py from trunk
2009-04-11 Douglas Soares de Andrade <douglas@archlinux.org>
* Removing libtool files
2009-04-10 Douglas Soares de Andrade <douglas@archlinux.org>
* Updated for i686: 1.6.1
* Added gerardo patch to fix insecure rpaths
2009-03-24 Douglas Soares de Andrade <douglas@archlinux.org>
* Added sqlite3 as a dep
2009-03-21 Douglas Soares de Andrade <douglas@archlinux.org>
* Updated for i686: 1.6.0
2009-02-26 Douglas Soares de Andrade <douglas@archlinux.org>
* Updated for i686: 1.5.6
2008-10-10 Douglas Soares de Andrade <douglas@archlinux.org>
* Updated for i686: 1.5.3
2008-09-04 Douglas Soares de Andrade <douglas@archlinux.org>
* 1.5.2: Finally updated for i686 as it does not break the
devtools.
2008-08-13 Douglas Soares de Andrade <dsa@aur.archlinux.org>
* Updated for i686: 1.5.1
2008-07-23 Douglas Soares de Andrade <douglas@archlinux.org>
* Updated for i686: 1.5.0

90
extra/subversion/PKGBUILD Normal file
View file

@ -0,0 +1,90 @@
# $Id: PKGBUILD 77223 2010-04-11 14:13:33Z pierre $
# Maintainer: Paul Mattal <paul@archlinux.org>
# Contributor: Jason Chu <jason@archlinux.org>
pkgname=subversion
pkgver=1.6.9
pkgrel=5
pkgdesc="Replacement for CVS, another versioning system (svn)"
arch=('i686' 'x86_64')
license=('apache' 'bsd')
depends=('neon' 'apr-util')
makedepends=('heimdal' 'apache' 'python' 'perl' 'swig' 'ruby'
'autoconf' 'sqlite3' 'db' 'e2fsprogs')
source=(http://subversion.tigris.org/downloads/$pkgname-$pkgver.tar.bz2
svnserve svn svnserve.conf svnmerge.py
subversion.rpath.fix.patch
subversion.suppress.deprecation.warnings.patch)
backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
url="http://subversion.tigris.org/"
provides=('svn')
options=('!makeflags' '!libtool')
optdepends=('bash-completion: for svn bash completion')
build() {
cd ${srcdir}/${pkgname}-${pkgver} || return 1
# apply patches
patch -p0 < $srcdir/subversion.rpath.fix.patch || return 1
patch -p1 -i $srcdir/subversion.suppress.deprecation.warnings.patch \
|| return 1
# configure
autoreconf || return 1
./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
--with-zlib=/usr --with-neon=/usr --with-apxs \
--with-sqlite=/usr || return 1
# build
(make external-all && make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all ) \
|| return 1
# install
export LD_LIBRARY_PATH=${pkgdir}/usr/lib:$LD_LIBRARY_PATH
make DESTDIR=${pkgdir} install || return 1
make DESTDIR=${pkgdir} swig-py || return 1
make install-swig-py DESTDIR=${pkgdir} || return 1
mkdir -p ${pkgdir}/usr/lib/python2.6 || return 1
mv ${pkgdir}/usr/lib/svn-python/ ${pkgdir}/usr/lib/python2.6/site-packages \
|| return 1
mkdir -p ${pkgdir}/usr/share/subversion || return 1
install -d -m 755 tools/hook-scripts ${pkgdir}/usr/share/subversion/ \
|| return 1
rm -f ${pkgdir}/usr/share/subversion/hook-scripts/*.in || return 1
make DESTDIR=${pkgdir} swig-pl || return 1
make install-swig-pl DESTDIR=${pkgdir} INSTALLDIRS=vendor || return 1
rm -f ${pkgdir}/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist \
|| return 1
rm -rf ${pkgdir}/usr/lib/perl5/core_perl || return 1
make DESTDIR=${pkgdir} swig-rb || return 1
make install-swig-rb DESTDIR=${pkgdir} || return 1
mkdir -p ${pkgdir}/etc/rc.d || return 1
mkdir -p ${pkgdir}/etc/xinetd.d || return 1
mkdir -p ${pkgdir}/etc/conf.d || return 1
install -m 755 ${srcdir}/svnserve ${pkgdir}/etc/rc.d || return 1
install -m 644 ${srcdir}/svn ${pkgdir}/etc/xinetd.d || return 1
install -m 644 ${srcdir}/svnserve.conf ${pkgdir}/etc/conf.d/svnserve \
|| return 1
install -m 755 ${srcdir}/svnmerge.py ${pkgdir}/usr/bin/svnmerge || return 1
install -D -m 644 ${srcdir}/subversion-$pkgver/COPYING \
${pkgdir}/usr/share/licenses/$pkgname/LICENSE || return 1
# bash completion
install -Dm 644 ${srcdir}/${pkgname}-${pkgver}/tools/client-side/bash_completion \
${pkgdir}/etc/bash_completion.d/subversion || return 1
}
md5sums=('9c30a47b1d48664e7afef68bb4834c53'
'a2b029e8385007ffb99b437b30521c90'
'a0db6dd43af33952739b6ec089852630'
'c459e299192552f61578f3438abf0664'
'21bf3aa5b797ce98eba8307f30e9c070'
'6b4340ba9d8845cd8497e013ae01be3f'
'1166f3b7413d7e7450299b3525680bbe')

View file

@ -0,0 +1,192 @@
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "native::Base 3"
.TH native::Base 3 "2004-12-04" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
SVN::Base \- Base class for importing symbols for svn modules
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 3
\& # Load the svn_ra_* functions into the SVN::Ra namespace.
\& package SVN::Ra;
\& use SVN::Base qw(Ra svn_ra_);
\&
\& # Load svn_config_t structure accessors in the magic namcespace
\& # provided by swig, so we could use it returned by other functions
\& package _p_svn_config_t;
\& use SVN::Base qw(Core svn_config_);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
SVN::Base is a module importing the subversion perl bindings raw
symbols created by swig, into proper namespace and make them easier to
use.
.PP
It will also find the accessors for members of a C struct, create an
simpler accessor function like \f(CW\*(C`$data\->field()\*(C'\fR and
\&\f(CW\*(C`$data\->field($new_value)\*(C'\fR.
.PP
Once you understand the convention of subversion functions in perl
bindings, you could look at the subversion api and write them in perl.
The \s-1API\s0 is available in the source header files or online at
http://svn.collab.net/svn\-doxygen/.
.SH "INTERNALS"
.IX Header "INTERNALS"
The perl bindings of swig wraps raw functions into different perl
modules, for example, SVN::_Core, SVN::_Repos. Upon import, SVN::Base
bootstrap the requested module if it's not yet loaded, and iterate
over the symbols provided in that module, it them puts the function
with prefix trimmed in the namespace of the caller for this import.
.PP
The 3rd through the last parameter is a list of symbol endings that
you wish for SVN::Base not to import into your namespace. This is useful
for cases where you may want to import certaion symbols differently than
normally.
.SH "CAVEATS"
.IX Header "CAVEATS"
SVN::Base consider a function as structure member accessor if it is
postfixed ``_get'' or ``_set''. Real functions with this postfixes
will need extra handling.
.SH "AUTHORS"
.IX Header "AUTHORS"
Chia-liang Kao <clkao@clkao.org>
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2003 CollabNet. All rights reserved.
.PP
This software is licensed as described in the file \s-1COPYING\s0, which you
should have received as part of this distribution. The terms are also
available at http://subversion.tigris.org/license\-1.html. If newer
versions of this license are posted there, you may use a newer version
instead, at your option.
.PP
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
and logs, available at http://subversion.tigris.org/.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,560 @@
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "native::Core 3"
.TH native::Core 3 "2008-08-13" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
SVN::Core \- Core module of the subversion perl bindings
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& use SVN::Core; # does apr_initialize and cleanup for you
\&
\& # create a root pool and set it as default pool for later use
\& my $pool = SVN::Pool\->new_default;
\&
\& sub something {
\& # create a subpool of the current default pool
\& my $pool = SVN::Pool\->new_default_sub;
\& # some svn operations...
\&
\& # $pool gets destroyed and the previous default pool
\& # is restored when $pool\*(Aqs lexical scope ends
\& }
\&
\& # svn_stream_t as native perl io handle
\& my $stream = $txn\->root\->apply_text(\*(Aqtrunk/filea\*(Aq, undef);
\& print $stream $text;
\& close $stream;
\&
\& # native perl io handle as svn_stream_t
\& SVN::Repos::dump_fs($repos, \e*STDOUT, \e*STDERR,
\& 0, $repos\->fs\->youngest_rev, 0);
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
SVN::Core implements higher level functions of fundamental subversion
functions.
.SH "FUNCTIONS"
.IX Header "FUNCTIONS"
.IP "SVN::Core::auth_open([auth provider array]);" 4
.IX Item "SVN::Core::auth_open([auth provider array]);"
Takes a reference to an array of authentication providers
and returns an auth_baton. If you use prompt providers
you can not use this function, but need to use the
auth_open_helper.
.IP "SVN::Core::auth_open_helper([auth provider array]);" 4
.IX Item "SVN::Core::auth_open_helper([auth provider array]);"
Prompt providers return two values instead of one. The
2nd parameter is a reference to whatever was passed into
them as the callback. auth_open_helper splits up these
arguments, passing the provider objects into auth_open
which gives it an auth_baton and putting the other
ones in an array. The first return value of this
function is the auth_baton, the second is a reference
to an array containing the references to the callbacks.
.Sp
These callback arrays should be stored in the object
the auth_baton is attached to.
.SH "OTHER OBJECTS"
.IX Header "OTHER OBJECTS"
.SS "svn_stream_t \- SVN::Stream"
.IX Subsection "svn_stream_t - SVN::Stream"
You can use native perl io handles (including io globs) as
svn_stream_t in subversion functions. Returned svn_stream_t are also
translated into perl io handles, so you could access them with regular
print, read, etc.
.PP
Note that some functions take a stream to read from or write to, but do not
close the stream while still holding the reference to the io handle.
In this case the handle won't be destroyed properly.
You should always set up the correct default pool before calling
such functions.
.SS "svn_pool_t \- SVN::Pool"
.IX Subsection "svn_pool_t - SVN::Pool"
The perl bindings significantly simplify the usage of pools, while
still being manually adjustable.
.PP
For functions requiring a pool as the last argument (which are, almost all
of the subversion functions), the pool argument is optional. The default pool
is used if it is omitted. When \f(CW\*(C`SVN::Core\*(C'\fR is loaded, it creates a
new default pool, which is also available from \f(CW\*(C`SVN::Core\->gpool\*(C'\fR.
.PP
For callback functions providing a pool to your subroutine, you could
also use \f(CW$pool\fR\->default to make it the default pool in the scope.
.PP
\fIMethods\fR
.IX Subsection "Methods"
.IP "new ([$parent])" 4
.IX Item "new ([$parent])"
Create a new pool. The pool is a root pool if \f(CW$parent\fR is not supplied.
.IP "new_default ([$parent])" 4
.IX Item "new_default ([$parent])"
Create a new pool. The pool is a root pool if \f(CW$parent\fR is not supplied.
Set the new pool as default pool.
.IP "new_default_sub" 4
.IX Item "new_default_sub"
Create a new subpool of the current default pool, and set the
resulting pool as new default pool.
.IP "clear" 4
.IX Item "clear"
Clear the pool.
.IP "\s-1DESTROY\s0" 4
.IX Item "DESTROY"
Destroy the pool. If the pool was the default pool, restore the
previous default pool. This is normally called
automatically when the SVN::Pool object is no longer used and
destroyed by the perl garbage collector.
.SS "svn_error_t \- SVN::Error"
.IX Subsection "svn_error_t - SVN::Error"
By default the perl bindings handle exceptions for you. The default handler
automatically croaks with an appropriate error message. This is likely
sufficient for simple scripts, but more complex usage may demand handling of
errors.
.PP
You can override the default exception handler by changing the
\&\f(CW$SVN::Error::handler\fR variable. This variable holds a reference to a perl sub
that should be called whenever an error is returned by a svn function. This
sub will be passed a svn_error_t object. Its return value is ignored.
.PP
If you set the \f(CW$SVN::Error::handler\fR to undef then each call will return an
svn_error_t object as its first return in the case of an error, followed by the
normal return values. If there is no error then a svn_error_t will not be
returned and only the normal return values will be returned. When using this
mode you should be careful only to call functions in array context. For
example: my ($ci) = \f(CW$ctx\fR\->mkdir('http://svn/foo'); In this case \f(CW$ci\fR will
be an svn_error_t object if an error occurs and a svn_client_commit_info object
otherwise. If you leave the parenthesis off around \f(CW$ci\fR (scalar context) it
will be the commit_info object, which in the case of an error will be undef.
.PP
If you plan on using explicit exception handling, understanding the exception
handling system the C \s-1API\s0 uses is helpful. You can find information on it in
the \s-1HACKING\s0 file and the \s-1API\s0 documentation. Looking at the implementation of
SVN::Error::croak_on_error and SVN::Error::expanded_message may be helpful as
well.
.ie n .IP "$svn_error_t\->\fIapr_err()\fR" 4
.el .IP "\f(CW$svn_error_t\fR\->\fIapr_err()\fR" 4
.IX Item "$svn_error_t->apr_err()"
\&\s-1APR\s0 error value, possibly \s-1SVN_\s0 custom error.
.ie n .IP "$svn_error_t\->\fImessage()\fR" 4
.el .IP "\f(CW$svn_error_t\fR\->\fImessage()\fR" 4
.IX Item "$svn_error_t->message()"
Details from producer of error.
.ie n .IP "$svn_error_t\->\fIchild()\fR" 4
.el .IP "\f(CW$svn_error_t\fR\->\fIchild()\fR" 4
.IX Item "$svn_error_t->child()"
svn_error_t object of the error that's wrapped.
.ie n .IP "$svn_error_t\->\fIpool()\fR" 4
.el .IP "\f(CW$svn_error_t\fR\->\fIpool()\fR" 4
.IX Item "$svn_error_t->pool()"
The pool holding this error and any child errors it wraps.
.ie n .IP "$svn_error_t\->\fIfile()\fR" 4
.el .IP "\f(CW$svn_error_t\fR\->\fIfile()\fR" 4
.IX Item "$svn_error_t->file()"
Source file where the error originated.
.ie n .IP "$svn_error_t\->\fIline()\fR" 4
.el .IP "\f(CW$svn_error_t\fR\->\fIline()\fR" 4
.IX Item "$svn_error_t->line()"
Source line where the error originated.
.IP "SVN::Error::strerror($apr_status_t)" 4
.IX Item "SVN::Error::strerror($apr_status_t)"
Returns the english description of the status code.
.ie n .IP "$svn_error_t\->\fIstrerror()\fR" 4
.el .IP "\f(CW$svn_error_t\fR\->\fIstrerror()\fR" 4
.IX Item "$svn_error_t->strerror()"
Returns the english description of the apr_err status code set on the
\&\f(CW$svn_error_t\fR. This is short for:
SVN::Error::strerror($svn_error_t\->\fIapr_err()\fR);
.ie n .IP "SVN::Error::create($apr_err, $child, $message);" 4
.el .IP "SVN::Error::create($apr_err, \f(CW$child\fR, \f(CW$message\fR);" 4
.IX Item "SVN::Error::create($apr_err, $child, $message);"
Returns a new svn_error_t object with the error status specified in \f(CW$apr_err\fR,
the child as \f(CW$child\fR, and error message of \f(CW$message\fR.
.ie n .IP "SVN::Error::quick_wrap($child, $new_msg); or $child\->quick_wrap($new_msg);" 4
.el .IP "SVN::Error::quick_wrap($child, \f(CW$new_msg\fR); or \f(CW$child\fR\->quick_wrap($new_msg);" 4
.IX Item "SVN::Error::quick_wrap($child, $new_msg); or $child->quick_wrap($new_msg);"
A quick n' easy way to create a wrappered exception with your own message
before throwing it up the stack.
.Sp
\&\f(CW$child\fR is the svn_error_t object you want to wrap and \f(CW$new_msg\fR is the new error
string you want to set.
.ie n .IP "SVN::Error::compose($chain, $new_error); or $chain\->compose($new_error);" 4
.el .IP "SVN::Error::compose($chain, \f(CW$new_error\fR); or \f(CW$chain\fR\->compose($new_error);" 4
.IX Item "SVN::Error::compose($chain, $new_error); or $chain->compose($new_error);"
Add new_err to the end of \f(CW$chain\fR's chain of errors.
.Sp
The \f(CW$new_err\fR chain will be copied into \f(CW$chain\fR's pool and destroyed, so \f(CW$new_err\fR
itself becomes invalid after this function.
.ie n .IP "SVN::Error::clear($svn_error_t); or $svn_error_t\->\fIclear()\fR;" 4
.el .IP "SVN::Error::clear($svn_error_t); or \f(CW$svn_error_t\fR\->\fIclear()\fR;" 4
.IX Item "SVN::Error::clear($svn_error_t); or $svn_error_t->clear();"
Free the memory used by \f(CW$svn_error_t\fR, as well as all ancestors and descendants
of \f(CW$svn_error_t\fR.
.Sp
You must call this on every svn_error_t object you get or you will leak memory.
.ie n .IP "SVN::Error::expanded_message($svn_error_t) or $svn_error_t\->\fIexpanded_message()\fR" 4
.el .IP "SVN::Error::expanded_message($svn_error_t) or \f(CW$svn_error_t\fR\->\fIexpanded_message()\fR" 4
.IX Item "SVN::Error::expanded_message($svn_error_t) or $svn_error_t->expanded_message()"
Returns the error message by tracing through the svn_error_t object and its
children and concatenating the error messages. This is how the internal
exception handlers get their error messages.
.IP "SVN::Error::is_error($value)" 4
.IX Item "SVN::Error::is_error($value)"
Returns true if value is of type svn_error. Returns false if value is
anything else or undefined. This is useful for seeing if a call has returned
an error.
.IP "SVN::Error::croak_on_error" 4
.IX Item "SVN::Error::croak_on_error"
Default error handler. It takes an svn_error_t and extracts the error messages
from it and croaks with those messages.
.Sp
It can be used in two ways. The first is detailed above as setting it as the
automatic exception handler via setting \f(CW$SVN::Error::handler\fR.
.Sp
The second is if you have \f(CW$SVN::Error::handler\fR set to undef as a wrapper for
calls you want to croak on when there is an error, but you don't want to write
an explicit error handler. For example:
.Sp
my \f(CW$result_rev\fR=SVN::Error::croak_on_error($ctx\->checkout($url,$path,'\s-1HEAD\s0',1));
.Sp
If there is no error then croak_on_error will return the arguments passed to it
unchanged.
.IP "SVN::Error::confess_on_error" 4
.IX Item "SVN::Error::confess_on_error"
The same as croak_on_error except it will give a more detailed stack backtrace,
including internal calls within the implementation of the perl bindings.
This is useful when you are doing development work on the bindings themselves.
.IP "SVN::Error::ignore_error" 4
.IX Item "SVN::Error::ignore_error"
This is useful for wrapping around calls which you wish to ignore any potential
error. It checks to see if the first parameter is an error and if it is it
clears it. It then returns all the other parameters.
.SS "svn_log_changed_path_t"
.IX Subsection "svn_log_changed_path_t"
.ie n .IP "$lcp\->\fIaction()\fR" 4
.el .IP "\f(CW$lcp\fR\->\fIaction()\fR" 4
.IX Item "$lcp->action()"
\&'A'dd, 'D'elete, 'R'eplace, 'M'odify
.ie n .IP "$lcp\->\fIcopyfrom_path()\fR" 4
.el .IP "\f(CW$lcp\fR\->\fIcopyfrom_path()\fR" 4
.IX Item "$lcp->copyfrom_path()"
Source path of copy, or \f(CW\*(C`undef\*(C'\fR if there isn't any previous revision
history.
.ie n .IP "$lcp\->\fIcopyfrom_rev()\fR" 4
.el .IP "\f(CW$lcp\fR\->\fIcopyfrom_rev()\fR" 4
.IX Item "$lcp->copyfrom_rev()"
Source revision of copy, or \f(CW$SVN::Core::INVALID_REVNUM\fR if there is
no previous history.
.SS "svn_node_kind_t \- SVN::Node"
.IX Subsection "svn_node_kind_t - SVN::Node"
An enum of the following constants:
.PP
\&\f(CW$SVN::Node::none\fR, \f(CW$SVN::Node::file\fR,
\&\f(CW$SVN::Node::dir\fR, \f(CW$SVN::Node::unknown\fR.
.SS "svn_opt_revision_t"
.IX Subsection "svn_opt_revision_t"
.SS "svn_config_t"
.IX Subsection "svn_config_t"
Opaque object describing a set of configuration options.
.SS "svn_dirent_t"
.IX Subsection "svn_dirent_t"
.ie n .IP "$dirent\->\fIkind()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fIkind()\fR" 4
.IX Item "$dirent->kind()"
Node kind. A number which matches one of these constants:
\&\f(CW$SVN::Node::none\fR, \f(CW$SVN::Node::file\fR,
\&\f(CW$SVN::Node::dir\fR, \f(CW$SVN::Node::unknown\fR.
.ie n .IP "$dirent\->\fIsize()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fIsize()\fR" 4
.IX Item "$dirent->size()"
Length of file text, or 0 for directories.
.ie n .IP "$dirent\->\fIhas_props()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fIhas_props()\fR" 4
.IX Item "$dirent->has_props()"
Does the node have properties?
.ie n .IP "$dirent\->\fIcreated_rev()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fIcreated_rev()\fR" 4
.IX Item "$dirent->created_rev()"
Last revision in which this node changed.
.ie n .IP "$dirent\->\fItime()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fItime()\fR" 4
.IX Item "$dirent->time()"
Time of created_rev (mod-time).
.ie n .IP "$dirent\->\fIlast_author()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fIlast_author()\fR" 4
.IX Item "$dirent->last_author()"
Author of created rev.
.SS "svn_auth_cred_simple_t"
.IX Subsection "svn_auth_cred_simple_t"
.ie n .IP "$simple\->\fIusername()\fR" 4
.el .IP "\f(CW$simple\fR\->\fIusername()\fR" 4
.IX Item "$simple->username()"
Username.
.ie n .IP "$simple\->\fIpassword()\fR" 4
.el .IP "\f(CW$simple\fR\->\fIpassword()\fR" 4
.IX Item "$simple->password()"
Password.
.ie n .IP "$simple\->\fImay_save()\fR" 4
.el .IP "\f(CW$simple\fR\->\fImay_save()\fR" 4
.IX Item "$simple->may_save()"
Indicates if the credentials may be saved (to disk).
.SS "svn_auth_cred_username_t"
.IX Subsection "svn_auth_cred_username_t"
.ie n .IP "$username\->\fIusername()\fR" 4
.el .IP "\f(CW$username\fR\->\fIusername()\fR" 4
.IX Item "$username->username()"
Username.
.ie n .IP "$username\->\fImay_save()\fR" 4
.el .IP "\f(CW$username\fR\->\fImay_save()\fR" 4
.IX Item "$username->may_save()"
Indicates if the credentials may be saved (to disk).
.SS "svn_auth_cred_ssl_server_trust_t"
.IX Subsection "svn_auth_cred_ssl_server_trust_t"
.ie n .IP "$strust\->\fImay_save()\fR" 4
.el .IP "\f(CW$strust\fR\->\fImay_save()\fR" 4
.IX Item "$strust->may_save()"
Indicates if the credentials may be saved (to disk).
.ie n .IP "$strust\->\fIaccepted_failures()\fR" 4
.el .IP "\f(CW$strust\fR\->\fIaccepted_failures()\fR" 4
.IX Item "$strust->accepted_failures()"
Bit mask of the accepted failures.
.SS "svn_auth_ssl_server_cert_info_t"
.IX Subsection "svn_auth_ssl_server_cert_info_t"
.ie n .IP "$scert\->\fIhostname()\fR" 4
.el .IP "\f(CW$scert\fR\->\fIhostname()\fR" 4
.IX Item "$scert->hostname()"
Primary \s-1CN\s0.
.ie n .IP "$scert\->\fIfingerprint()\fR" 4
.el .IP "\f(CW$scert\fR\->\fIfingerprint()\fR" 4
.IX Item "$scert->fingerprint()"
\&\s-1ASCII\s0 fingerprint.
.ie n .IP "$scert\->\fIvalid_from()\fR" 4
.el .IP "\f(CW$scert\fR\->\fIvalid_from()\fR" 4
.IX Item "$scert->valid_from()"
\&\s-1ASCII\s0 date from which the certificate is valid.
.ie n .IP "$scert\->\fIvalid_until()\fR" 4
.el .IP "\f(CW$scert\fR\->\fIvalid_until()\fR" 4
.IX Item "$scert->valid_until()"
\&\s-1ASCII\s0 date until which the certificate is valid.
.ie n .IP "$scert\->\fIissuer_dname()\fR" 4
.el .IP "\f(CW$scert\fR\->\fIissuer_dname()\fR" 4
.IX Item "$scert->issuer_dname()"
\&\s-1DN\s0 of the certificate issuer.
.ie n .IP "$scert\->\fIascii_cert()\fR" 4
.el .IP "\f(CW$scert\fR\->\fIascii_cert()\fR" 4
.IX Item "$scert->ascii_cert()"
Base\-64 encoded \s-1DER\s0 certificate representation.
.SS "svn_auth_cred_ssl_client_cert_t"
.IX Subsection "svn_auth_cred_ssl_client_cert_t"
.ie n .IP "$ccert\->\fIcert_file()\fR" 4
.el .IP "\f(CW$ccert\fR\->\fIcert_file()\fR" 4
.IX Item "$ccert->cert_file()"
Full paths to the certificate file.
.ie n .IP "$ccert\->\fImay_save()\fR" 4
.el .IP "\f(CW$ccert\fR\->\fImay_save()\fR" 4
.IX Item "$ccert->may_save()"
Indicates if the credentials may be saved (to disk).
.SS "svn_auth_cred_ssl_client_cert_pw_t"
.IX Subsection "svn_auth_cred_ssl_client_cert_pw_t"
.ie n .IP "$ccertpw\->\fIpassword()\fR" 4
.el .IP "\f(CW$ccertpw\fR\->\fIpassword()\fR" 4
.IX Item "$ccertpw->password()"
Certificate password.
.ie n .IP "$ccertpw\->\fImay_save()\fR" 4
.el .IP "\f(CW$ccertpw\fR\->\fImay_save()\fR" 4
.IX Item "$ccertpw->may_save()"
Indicates if the credentials may be saved (to disk).
.SH "CONSTANTS"
.IX Header "CONSTANTS"
.SS "SVN::Auth::SSL"
.IX Subsection "SVN::Auth::SSL"
.ie n .IP "$SVN::Auth::SSL::NOTYETVALID" 4
.el .IP "\f(CW$SVN::Auth::SSL::NOTYETVALID\fR" 4
.IX Item "$SVN::Auth::SSL::NOTYETVALID"
Certificate is not yet valid.
.ie n .IP "$SVN::Auth::SSL::EXPIRED" 4
.el .IP "\f(CW$SVN::Auth::SSL::EXPIRED\fR" 4
.IX Item "$SVN::Auth::SSL::EXPIRED"
Certificate has expired.
.ie n .IP "$SVN::Auth::SSL::CNMISMATCH" 4
.el .IP "\f(CW$SVN::Auth::SSL::CNMISMATCH\fR" 4
.IX Item "$SVN::Auth::SSL::CNMISMATCH"
Certificate's \s-1CN\s0 (hostname) does not match the remote hostname.
.ie n .IP "$SVN::Auth::SSL::UNKNOWNCA" 4
.el .IP "\f(CW$SVN::Auth::SSL::UNKNOWNCA\fR" 4
.IX Item "$SVN::Auth::SSL::UNKNOWNCA"
Certificate authority is unknown (i.e. not trusted).
.ie n .IP "$SVN::Auth::SSL::OTHER" 4
.el .IP "\f(CW$SVN::Auth::SSL::OTHER\fR" 4
.IX Item "$SVN::Auth::SSL::OTHER"
Other failure. This can happen if neon has introduced a new failure bit that we
do not handle yet.
.SS "_p_svn_lock_t"
.IX Subsection "_p_svn_lock_t"
Objects of this class contain information about locks placed on files
in a repository. It has the following accessor methods:
.IP "path" 4
.IX Item "path"
The full path to the file which is locked, starting with a forward slash (\f(CW\*(C`/\*(C'\fR).
.IP "token" 4
.IX Item "token"
A string containing the lock token, which is a unique \s-1URI\s0.
.IP "owner" 4
.IX Item "owner"
The username of whoever owns the lock.
.IP "comment" 4
.IX Item "comment"
A comment associated with the lock, or undef if there isn't one.
.IP "is_dav_comment" 4
.IX Item "is_dav_comment"
True if the comment was made by a generic \s-1DAV\s0 client.
.IP "creation_date" 4
.IX Item "creation_date"
Time at which the lock was created, as the number of microseconds since
00:00:00 January\ 1, 1970 \s-1UTC\s0. Divide it by 1_000_000 to get a Unix
time_t value.
.IP "expiration_date" 4
.IX Item "expiration_date"
When the lock will expire. Has the value '0' if the lock will never expire.
.SH "AUTHORS"
.IX Header "AUTHORS"
Chia-liang Kao <clkao@clkao.org>
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2003 CollabNet. All rights reserved.
.PP
This software is licensed as described in the file \s-1COPYING\s0, which you
should have received as part of this distribution. The terms are also
available at http://subversion.tigris.org/license\-1.html. If newer
versions of this license are posted there, you may use a newer version
instead, at your option.
.PP
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
and logs, available at http://subversion.tigris.org/.

View file

@ -0,0 +1,224 @@
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "native::Delta 3"
.TH native::Delta 3 "2005-10-24" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
SVN::Delta \- Subversion delta functions
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 3
\& require SVN::Core;
\& require SVN::Repos;
\& require SVN::Delta;
\&
\& # driving an editor
\& my $editor = SVN::Delta::Editor\->
\& new(SVN::Repos::get_commit_editor($repos, "file://$repospath",
\& \*(Aq/\*(Aq, \*(Aqroot\*(Aq, \*(AqFOO\*(Aq, \e&committed));
\&
\& my $rootbaton = $editor\->open_root(0);
\&
\& my $fbaton = $editor\->add_file (\*(Aqfilea\*(Aq, $rootbaton,
\& undef, \-1);
\&
\& my $ret = $editor\->apply_textdelta ($fbaton, undef);
\& SVN::TxDelta::send_string("FILEA CONTENT", @$ret);
\&
\& # implement an editor in perl
\& SVN::Repos::dir_delta($root1, $path, undef,
\& $root2, $path,
\& SVN::Delta::Editor\->new(_debug=>1),
\& 1, 1, 0, 1
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
SVN::Delta wraps delta related function in subversion. The most
important one is SVN::Delta::Editor, the interface for describing tree
deltas. by default SVN::Delta::Editor relays method calls to its
internal member \f(CW\*(C`_editor\*(C'\fR, which could either be an editor in C (such
as the one you get from get_commit_editor), or another
SVN::Delta::Editor object.
.SH "SVN::Delta::Editor"
.IX Header "SVN::Delta::Editor"
.SS "Driving Editors"
.IX Subsection "Driving Editors"
If you want to drive a native editor (such as commit_editor obtained
by SVN::Repos::get_commit_editor), create a SVN::Delta::Editor object
with the native editor/baton pair. The object will then be ready to
use and its method calls will be relayed to the native editor.
.SS "Implementing Editors"
.IX Subsection "Implementing Editors"
If you want to implement an editor, subclass SVN::Delta::Editor and
implement the editors callbacks. see the \s-1METHODS\s0 section below.
.SS "\s-1CONSTRUCTOR\s0 \- new (...)"
.IX Subsection "CONSTRUCTOR - new (...)"
.ie n .IP "new ($editor, $editor_baton)" 4
.el .IP "new ($editor, \f(CW$editor_baton\fR)" 4
.IX Item "new ($editor, $editor_baton)"
Link to the native editor
.PP
You can also pass a hash array to new:
.IP "_debug" 4
.IX Item "_debug"
Turn on debug.
.IP "_editor" 4
.IX Item "_editor"
An arrayref of the editor/baton pair or another SVN::Delta::Editor
object to link with.
.SS "\s-1METHODS\s0"
.IX Subsection "METHODS"
Please consult the svn_delta.h section in the Subversion \s-1API\s0. Member
functions of svn_delta_editor_t could be called as methods of
SVN::Delta::Editor objects, with the edit_baton omitted. The pool is
also optional.
.PP
If you are subclassing, the methods take exactly the same arguments as
the member functions (note that void ** are returned data though as
throughout the perl bindings), with the edit_baton omitted.
.SH "BUGS"
.IX Header "BUGS"
Functions returning editor/baton pair should really be typemapped to a
SVN::Delta::Editor object.
.SH "AUTHORS"
.IX Header "AUTHORS"
Chia-liang Kao <clkao@clkao.org>
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2003 CollabNet. All rights reserved.
.PP
This software is licensed as described in the file \s-1COPYING\s0, which you
should have received as part of this distribution. The terms are also
available at http://subversion.tigris.org/license\-1.html. If newer
versions of this license are posted there, you may use a newer version
instead, at your option.
.PP
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
and logs, available at http://subversion.tigris.org/.

View file

@ -0,0 +1,567 @@
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "native::Fs 3"
.TH native::Fs 3 "2006-09-13" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
SVN::Fs \- Subversion filesystem functions
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
SVN::Fs wraps the functions in svn_fs.h. The actual namespace
for filesystem objects is \f(CW\*(C`_p_svn_fs_t\*(C'\fR.
.SH "FUNCTIONS"
.IX Header "FUNCTIONS"
.ie n .IP "SVN::Fs::berkeley_logfiles($path, $only_unused)" 4
.el .IP "SVN::Fs::berkeley_logfiles($path, \f(CW$only_unused\fR)" 4
.IX Item "SVN::Fs::berkeley_logfiles($path, $only_unused)"
.PD 0
.IP "SVN::Fs::berkeley_recover($path)" 4
.IX Item "SVN::Fs::berkeley_recover($path)"
.ie n .IP "SVN::Fs::check_related($id1, $id2)" 4
.el .IP "SVN::Fs::check_related($id1, \f(CW$id2\fR)" 4
.IX Item "SVN::Fs::check_related($id1, $id2)"
.ie n .IP "SVN::Fs::compare_ids($id1, $id2)" 4
.el .IP "SVN::Fs::compare_ids($id1, \f(CW$id2\fR)" 4
.IX Item "SVN::Fs::compare_ids($id1, $id2)"
.ie n .IP "SVN::Fs::contents_changed($root1, $path1, $root2, $path2)" 4
.el .IP "SVN::Fs::contents_changed($root1, \f(CW$path1\fR, \f(CW$root2\fR, \f(CW$path2\fR)" 4
.IX Item "SVN::Fs::contents_changed($root1, $path1, $root2, $path2)"
.ie n .IP "SVN::Fs::create($path, $config)" 4
.el .IP "SVN::Fs::create($path, \f(CW$config\fR)" 4
.IX Item "SVN::Fs::create($path, $config)"
.IP "SVN::Fs::delete_fs($path)" 4
.IX Item "SVN::Fs::delete_fs($path)"
.ie n .IP "SVN::Fs::deltify_revision($fs, $rev)" 4
.el .IP "SVN::Fs::deltify_revision($fs, \f(CW$rev\fR)" 4
.IX Item "SVN::Fs::deltify_revision($fs, $rev)"
.ie n .IP "SVN::Fs::get_file_delta_stream($source_root, $source_path, $target_root, $target_path)" 4
.el .IP "SVN::Fs::get_file_delta_stream($source_root, \f(CW$source_path\fR, \f(CW$target_root\fR, \f(CW$target_path\fR)" 4
.IX Item "SVN::Fs::get_file_delta_stream($source_root, $source_path, $target_root, $target_path)"
.ie n .IP "SVN::Fs::hotcopy($src_path, $dest_path, $clean)" 4
.el .IP "SVN::Fs::hotcopy($src_path, \f(CW$dest_path\fR, \f(CW$clean\fR)" 4
.IX Item "SVN::Fs::hotcopy($src_path, $dest_path, $clean)"
.IP "SVN::Fs::initialize($pool)" 4
.IX Item "SVN::Fs::initialize($pool)"
.ie n .IP "SVN::Fs::merge($source_root, $source_path, $target_root, $target_path, $ancestor_root, $ancestor_path)" 4
.el .IP "SVN::Fs::merge($source_root, \f(CW$source_path\fR, \f(CW$target_root\fR, \f(CW$target_path\fR, \f(CW$ancestor_root\fR, \f(CW$ancestor_path\fR)" 4
.IX Item "SVN::Fs::merge($source_root, $source_path, $target_root, $target_path, $ancestor_root, $ancestor_path)"
.ie n .IP "SVN::Fs::open($path, $config)" 4
.el .IP "SVN::Fs::open($path, \f(CW$config\fR)" 4
.IX Item "SVN::Fs::open($path, $config)"
.IP "SVN::Fs::path($fs)" 4
.IX Item "SVN::Fs::path($fs)"
.IP "SVN::Fs::print_modules($s)" 4
.IX Item "SVN::Fs::print_modules($s)"
.PD
\&\s-1TODO\s0 \- doesn't work, segfaults if \f(CW$s\fR is null, doesn't do anything if
its an empty string
.ie n .IP "SVN::Fs::props_changed($root1, $path1, $root2, $path2)" 4
.el .IP "SVN::Fs::props_changed($root1, \f(CW$path1\fR, \f(CW$root2\fR, \f(CW$path2\fR)" 4
.IX Item "SVN::Fs::props_changed($root1, $path1, $root2, $path2)"
See also \f(CW\*(C`SVN::Fs::contents_changed\*(C'\fR
.ie n .IP "SVN::Fs::purge_txn($fs, $txn_id)" 4
.el .IP "SVN::Fs::purge_txn($fs, \f(CW$txn_id\fR)" 4
.IX Item "SVN::Fs::purge_txn($fs, $txn_id)"
Cleanup the transaction \f(CW$txn_id\fR, removing it completely from
the filesystem \f(CW$fs\fR.
.ie n .IP "SVN::Fs::set_warning_func($fs, $code, $baton)" 4
.el .IP "SVN::Fs::set_warning_func($fs, \f(CW$code\fR, \f(CW$baton\fR)" 4
.IX Item "SVN::Fs::set_warning_func($fs, $code, $baton)"
.PD 0
.IP "SVN::Fs::unparse_id($id)" 4
.IX Item "SVN::Fs::unparse_id($id)"
.PD
Return a string containing the unparsed form of the node or node
revision id \f(CW$id\fR, which must be a \f(CW\*(C`_p_svn_fs_id_t\*(C'\fR object.
.Sp
\&\s-1TODO\s0 \- why isn't this a method of that object?
.IP "\fISVN::Fs::version()\fR" 4
.IX Item "SVN::Fs::version()"
\&\s-1TODO\s0 \- what can we do with the _p_svn_version_t value returned?
.IP "SVN::Fs::create_access($username)" 4
.IX Item "SVN::Fs::create_access($username)"
Return a new \f(CW\*(C`_p_svn_fs_access_t\*(C'\fR object representing \f(CW$username\fR.
\&\f(CW$username\fR is presumed to have been authenticated by the caller.
.SH "_p_svn_fs_t"
.IX Header "_p_svn_fs_t"
.ie n .IP "$fs\->begin_txn($rev)" 4
.el .IP "\f(CW$fs\fR\->begin_txn($rev)" 4
.IX Item "$fs->begin_txn($rev)"
Creates a new transaction in the repository, and returns a
\&\f(CW\*(C`_p_svn_fs_txn_t\*(C'\fR object representing it. The new transaction's
base revision will be \f(CW$rev\fR, which should be a number.
.ie n .IP "$fs\->change_rev_prop" 4
.el .IP "\f(CW$fs\fR\->change_rev_prop" 4
.IX Item "$fs->change_rev_prop"
.PD 0
.ie n .IP "$fs\->\fIgenerate_lock_token()\fR" 4
.el .IP "\f(CW$fs\fR\->\fIgenerate_lock_token()\fR" 4
.IX Item "$fs->generate_lock_token()"
.PD
Generate a unique lock-token using \f(CW$fs\fR.
.Sp
\&\s-1TODO\s0 \- translate this to apply to Perl:
This can be used in to populate lock\->token before calling
\&\fIsvn_fs_attach_lock()\fR.
.ie n .IP "$fs\->\fIget_access()\fR" 4
.el .IP "\f(CW$fs\fR\->\fIget_access()\fR" 4
.IX Item "$fs->get_access()"
The filesystem's current access context, as a \f(CW\*(C`_p_svn_fs_access_t\*(C'\fR
object. Returns undef if no access context has been set with
the \f(CW\*(C`set_access()\*(C'\fR method.
.ie n .IP "$fs\->get_lock" 4
.el .IP "\f(CW$fs\fR\->get_lock" 4
.IX Item "$fs->get_lock"
.PD 0
.ie n .IP "$fs\->get_locks" 4
.el .IP "\f(CW$fs\fR\->get_locks" 4
.IX Item "$fs->get_locks"
.ie n .IP "$fs\->\fIget_uuid()\fR" 4
.el .IP "\f(CW$fs\fR\->\fIget_uuid()\fR" 4
.IX Item "$fs->get_uuid()"
.PD
The \s-1UUID\s0 associated with \f(CW$fs\fR.
.ie n .IP "$fs\->\fIlist_transactions()\fR" 4
.el .IP "\f(CW$fs\fR\->\fIlist_transactions()\fR" 4
.IX Item "$fs->list_transactions()"
A reference to an array of all currently active transactions in the
filesystem. Each one is a string containing the transaction's \s-1ID\s0,
suitable for passing to \f(CW\*(C`$fs\->open_txn()\*(C'\fR.
.ie n .IP "$fs\->lock" 4
.el .IP "\f(CW$fs\fR\->lock" 4
.IX Item "$fs->lock"
.PD 0
.ie n .IP "$fs\->open_txn($name)" 4
.el .IP "\f(CW$fs\fR\->open_txn($name)" 4
.IX Item "$fs->open_txn($name)"
.PD
Get a transaction in the repository by name. Returns a
\&\f(CW\*(C`_p_svn_fs_txn_t\*(C'\fR object.
.ie n .IP "$fs\->revision_prop($rev, $propname)" 4
.el .IP "\f(CW$fs\fR\->revision_prop($rev, \f(CW$propname\fR)" 4
.IX Item "$fs->revision_prop($rev, $propname)"
The value of revision property \f(CW$propname\fR in revision \f(CW$rev\fR.
.ie n .IP "$fs\->revision_proplist($rev)" 4
.el .IP "\f(CW$fs\fR\->revision_proplist($rev)" 4
.IX Item "$fs->revision_proplist($rev)"
A hashref containing the names and values of all revision properties
from revision \f(CW$rev\fR.
.ie n .IP "$fs\->revision_root" 4
.el .IP "\f(CW$fs\fR\->revision_root" 4
.IX Item "$fs->revision_root"
.PD 0
.ie n .IP "$fs\->set_access($access)" 4
.el .IP "\f(CW$fs\fR\->set_access($access)" 4
.IX Item "$fs->set_access($access)"
.PD
Associate an access context with an open filesystem.
.Sp
This method can be run multiple times on the same open
filesystem, in order to change the filesystem access context for
different filesystem operations. \f(CW$access\fR should be
a \f(CW\*(C`_p_svn_fs_access_t\*(C'\fR object, or undef to disassociate the
current access context from the filesystem.
.ie n .IP "$fs\->set_uuid($uuid)" 4
.el .IP "\f(CW$fs\fR\->set_uuid($uuid)" 4
.IX Item "$fs->set_uuid($uuid)"
Associate \f(CW$uuid\fR with \f(CW$fs\fR.
.ie n .IP "$fs\->unlock" 4
.el .IP "\f(CW$fs\fR\->unlock" 4
.IX Item "$fs->unlock"
.PD 0
.ie n .IP "$fs\->\fIyoungest_rev()\fR" 4
.el .IP "\f(CW$fs\fR\->\fIyoungest_rev()\fR" 4
.IX Item "$fs->youngest_rev()"
.PD
Return the number of the youngest revision in the filesystem.
The oldest revision in any filesystem is numbered zero.
.SH "_p_svn_fs_root_t"
.IX Header "_p_svn_fs_root_t"
.ie n .IP "$root\->apply_text" 4
.el .IP "\f(CW$root\fR\->apply_text" 4
.IX Item "$root->apply_text"
.PD 0
.ie n .IP "$root\->apply_textdelta" 4
.el .IP "\f(CW$root\fR\->apply_textdelta" 4
.IX Item "$root->apply_textdelta"
.ie n .IP "$root\->change_node_prop($path, $propname, $value)" 4
.el .IP "\f(CW$root\fR\->change_node_prop($path, \f(CW$propname\fR, \f(CW$value\fR)" 4
.IX Item "$root->change_node_prop($path, $propname, $value)"
.ie n .IP "$root\->check_path($path)" 4
.el .IP "\f(CW$root\fR\->check_path($path)" 4
.IX Item "$root->check_path($path)"
.PD
Kind of node at \f(CW$path\fR. A number which matches one of these constants:
\&\f(CW$SVN::Node::none\fR, \f(CW$SVN::Node::file\fR,
\&\f(CW$SVN::Node::dir\fR, \f(CW$SVN::Node::unknown\fR.
.ie n .IP "$root\->close_root" 4
.el .IP "\f(CW$root\fR\->close_root" 4
.IX Item "$root->close_root"
.PD 0
.ie n .IP "$root\->closest_copy" 4
.el .IP "\f(CW$root\fR\->closest_copy" 4
.IX Item "$root->closest_copy"
.ie n .IP "$root\->copied_from" 4
.el .IP "\f(CW$root\fR\->copied_from" 4
.IX Item "$root->copied_from"
.ie n .IP "$root\->copy" 4
.el .IP "\f(CW$root\fR\->copy" 4
.IX Item "$root->copy"
.ie n .IP "$root\->delete" 4
.el .IP "\f(CW$root\fR\->delete" 4
.IX Item "$root->delete"
.ie n .IP "$root\->dir_entries" 4
.el .IP "\f(CW$root\fR\->dir_entries" 4
.IX Item "$root->dir_entries"
.ie n .IP "$root\->file_contents" 4
.el .IP "\f(CW$root\fR\->file_contents" 4
.IX Item "$root->file_contents"
.ie n .IP "$root\->file_length" 4
.el .IP "\f(CW$root\fR\->file_length" 4
.IX Item "$root->file_length"
.ie n .IP "$root\->file_md5_checksum" 4
.el .IP "\f(CW$root\fR\->file_md5_checksum" 4
.IX Item "$root->file_md5_checksum"
.ie n .IP "$root\->\fIfs()\fR" 4
.el .IP "\f(CW$root\fR\->\fIfs()\fR" 4
.IX Item "$root->fs()"
.PD
The filesystem to which \f(CW$root\fR belongs, as a \f(CW\*(C`_p_svn_fs_t\*(C'\fR object.
.ie n .IP "$root\->is_dir($path)" 4
.el .IP "\f(CW$root\fR\->is_dir($path)" 4
.IX Item "$root->is_dir($path)"
True if there is a node at \f(CW$path\fR which is a directory.
.ie n .IP "$root\->is_file($path)" 4
.el .IP "\f(CW$root\fR\->is_file($path)" 4
.IX Item "$root->is_file($path)"
True if there is a node at \f(CW$path\fR which is a file.
.ie n .IP "$root\->\fIis_revision_root()\fR" 4
.el .IP "\f(CW$root\fR\->\fIis_revision_root()\fR" 4
.IX Item "$root->is_revision_root()"
True if the root comes from a revision (i.e., the contents has already been
committed).
.ie n .IP "$root\->\fIis_txn_root()\fR" 4
.el .IP "\f(CW$root\fR\->\fIis_txn_root()\fR" 4
.IX Item "$root->is_txn_root()"
True if the root comes from a transaction.
.ie n .IP "$root\->make_dir" 4
.el .IP "\f(CW$root\fR\->make_dir" 4
.IX Item "$root->make_dir"
.PD 0
.ie n .IP "$root\->make_file" 4
.el .IP "\f(CW$root\fR\->make_file" 4
.IX Item "$root->make_file"
.ie n .IP "$root\->node_created_path($path)" 4
.el .IP "\f(CW$root\fR\->node_created_path($path)" 4
.IX Item "$root->node_created_path($path)"
.ie n .IP "$root\->node_created_rev($path)" 4
.el .IP "\f(CW$root\fR\->node_created_rev($path)" 4
.IX Item "$root->node_created_rev($path)"
.ie n .IP "$root\->node_history($path)" 4
.el .IP "\f(CW$root\fR\->node_history($path)" 4
.IX Item "$root->node_history($path)"
.PD
\&\s-1TODO\s0 \- _p_svn_fs_history_t
.ie n .IP "$root\->node_id($path)" 4
.el .IP "\f(CW$root\fR\->node_id($path)" 4
.IX Item "$root->node_id($path)"
.PD 0
.ie n .IP "$root\->node_prop($path, $propname)" 4
.el .IP "\f(CW$root\fR\->node_prop($path, \f(CW$propname\fR)" 4
.IX Item "$root->node_prop($path, $propname)"
.ie n .IP "$root\->node_proplist($path)" 4
.el .IP "\f(CW$root\fR\->node_proplist($path)" 4
.IX Item "$root->node_proplist($path)"
.ie n .IP "$root\->\fIpaths_changed()\fR" 4
.el .IP "\f(CW$root\fR\->\fIpaths_changed()\fR" 4
.IX Item "$root->paths_changed()"
.PD
A reference to a hash indicating what changes are made in the root.
The keys are the paths of the files changed, starting with \f(CW\*(C`/\*(C'\fR to
indicate the top-level directory of the repository. The values
are \f(CW\*(C`_p_svn_fs_path_change_t\*(C'\fR objects which contain information about
what kind of changes are made.
.ie n .IP "$root\->revision_link" 4
.el .IP "\f(CW$root\fR\->revision_link" 4
.IX Item "$root->revision_link"
.PD 0
.ie n .IP "$root\->revision_root_revision" 4
.el .IP "\f(CW$root\fR\->revision_root_revision" 4
.IX Item "$root->revision_root_revision"
.PD
Revision number of the revision the root comes from.
For transaction roots, returns \f(CW$SVN::Core::INVALID_REVNUM\fR.
.SH "_p_svn_fs_history_t"
.IX Header "_p_svn_fs_history_t"
.ie n .IP "$history\->\fIlocation()\fR" 4
.el .IP "\f(CW$history\fR\->\fIlocation()\fR" 4
.IX Item "$history->location()"
In list context, a list of two items: the path to the node whose history
this is, and the revision number in which it exists. In scalar context
returns only the revision number.
.ie n .IP "$history\->prev($cross_copies)" 4
.el .IP "\f(CW$history\fR\->prev($cross_copies)" 4
.IX Item "$history->prev($cross_copies)"
.SH "_p_svn_fs_txn_t"
.IX Header "_p_svn_fs_txn_t"
.PD 0
.ie n .IP "$txn\->\fIabort()\fR" 4
.el .IP "\f(CW$txn\fR\->\fIabort()\fR" 4
.IX Item "$txn->abort()"
.PD
Abort the transaction. Any changes made in \f(CW$txn\fR are discarded, and
the filesystem is left unchanged.
.Sp
Note: This function first sets the state of \f(CW$txn\fR to 'dead', and
then attempts to purge it and any related data from the filesystem.
If some part of the cleanup process fails, \f(CW$txn\fR and some portion
of its data may remain in the database after this function returns.
Use \f(CW\*(C`$fs\->purge_txn()\*(C'\fR to retry the transaction cleanup.
.ie n .IP "$txn\->\fIbase_revision()\fR" 4
.el .IP "\f(CW$txn\fR\->\fIbase_revision()\fR" 4
.IX Item "$txn->base_revision()"
The transaction's base revision number.
.ie n .IP "$txn\->change_prop($name, $value)" 4
.el .IP "\f(CW$txn\fR\->change_prop($name, \f(CW$value\fR)" 4
.IX Item "$txn->change_prop($name, $value)"
Add, change, or remove a property from the transaction.
If \f(CW$value\fR is \f(CW\*(C`undef\*(C'\fR then the property \f(CW$name\fR is removed,
if it exists. Otherwise the property \f(CW$name\fR is set to the
new value.
.ie n .IP "$txn\->commit" 4
.el .IP "\f(CW$txn\fR\->commit" 4
.IX Item "$txn->commit"
.PD 0
.ie n .IP "$txn\->\fIname()\fR" 4
.el .IP "\f(CW$txn\fR\->\fIname()\fR" 4
.IX Item "$txn->name()"
.PD
Full name of the revision, in the same format as can be passed
to \f(CW\*(C`$fs\->open_txn()\*(C'\fR.
.ie n .IP "$txn\->prop($name)" 4
.el .IP "\f(CW$txn\fR\->prop($name)" 4
.IX Item "$txn->prop($name)"
The value of the transaction's \f(CW$name\fR property.
.ie n .IP "$txn\->\fIproplist()\fR" 4
.el .IP "\f(CW$txn\fR\->\fIproplist()\fR" 4
.IX Item "$txn->proplist()"
A reference to a hash containing all the transaction's properties,
keyed by name.
.ie n .IP "$txn\->\fIroot()\fR" 4
.el .IP "\f(CW$txn\fR\->\fIroot()\fR" 4
.IX Item "$txn->root()"
The root directory of the transaction, as a \f(CW\*(C`_p_svn_fs_root_t\*(C'\fR object.
.SH "_p_svn_fs_access_t"
.IX Header "_p_svn_fs_access_t"
.SS "\s-1SYNOPSIS\s0"
.IX Subsection "SYNOPSIS"
.Vb 1
\& my $access = SVN::Fs::create_access($username);
\&
\& my $access = $fs\->get_access;
\& $fs\->set_access($access);
\&
\& my $username = $access\->get_username;
\&
\& $access\->add_lock_token($token);
.Ve
.SS "\s-1METHODS\s0"
.IX Subsection "METHODS"
.ie n .IP "$access\->add_lock_token($token)" 4
.el .IP "\f(CW$access\fR\->add_lock_token($token)" 4
.IX Item "$access->add_lock_token($token)"
Push a lock-token into the access context. The
context remembers all tokens it receives, and makes them available
to fs functions.
.ie n .IP "$access\->get_username" 4
.el .IP "\f(CW$access\fR\->get_username" 4
.IX Item "$access->get_username"
The username represented by the access context.
.SH "svn_fs_dirent_t"
.IX Header "svn_fs_dirent_t"
An object representing a directory entry. Values of this type are returned
as the values in the hash returned by \f(CW\*(C`$root\->dir_entries()\*(C'\fR. They
are like svn_dirent_t objects, but have less
information.
.ie n .IP "$dirent\->\fIid()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fIid()\fR" 4
.IX Item "$dirent->id()"
\&\s-1TODO\s0
.ie n .IP "$dirent\->\fIkind()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fIkind()\fR" 4
.IX Item "$dirent->kind()"
Node kind. A number which matches one of these constants:
\&\f(CW$SVN::Node::none\fR, \f(CW$SVN::Node::file\fR,
\&\f(CW$SVN::Node::dir\fR, \f(CW$SVN::Node::unknown\fR.
.ie n .IP "$dirent\->\fIname()\fR" 4
.el .IP "\f(CW$dirent\fR\->\fIname()\fR" 4
.IX Item "$dirent->name()"
The filename of the directory entry.
.SH "_p_svn_fs_path_change_t"
.IX Header "_p_svn_fs_path_change_t"
.ie n .IP "$change\->\fIchange_kind()\fR" 4
.el .IP "\f(CW$change\fR\->\fIchange_kind()\fR" 4
.IX Item "$change->change_kind()"
The type of change made. A number which matches one of the following:
.RS 4
.ie n .IP "$SVN::Fs::PathChange::modify" 4
.el .IP "\f(CW$SVN::Fs::PathChange::modify\fR" 4
.IX Item "$SVN::Fs::PathChange::modify"
Content at path modified.
.ie n .IP "$SVN::Fs::PathChange::add" 4
.el .IP "\f(CW$SVN::Fs::PathChange::add\fR" 4
.IX Item "$SVN::Fs::PathChange::add"
Path added in transaction.
.ie n .IP "$SVN::Fs::PathChange::delete" 4
.el .IP "\f(CW$SVN::Fs::PathChange::delete\fR" 4
.IX Item "$SVN::Fs::PathChange::delete"
Path removed in transaction.
.ie n .IP "$SVN::Fs::PathChange::replace" 4
.el .IP "\f(CW$SVN::Fs::PathChange::replace\fR" 4
.IX Item "$SVN::Fs::PathChange::replace"
Path removed and re-added in transaction.
.ie n .IP "$SVN::Fs::PathChange::reset" 4
.el .IP "\f(CW$SVN::Fs::PathChange::reset\fR" 4
.IX Item "$SVN::Fs::PathChange::reset"
Ignore all previous change items for path (internal-use only).
.RE
.RS 4
.RE
.ie n .IP "$change\->\fInode_rev_id()\fR" 4
.el .IP "\f(CW$change\fR\->\fInode_rev_id()\fR" 4
.IX Item "$change->node_rev_id()"
Node revision id of changed path. A \f(CW\*(C`_p_svn_fs_id_t\*(C'\fR object.
.ie n .IP "$change\->\fIprop_mod()\fR" 4
.el .IP "\f(CW$change\fR\->\fIprop_mod()\fR" 4
.IX Item "$change->prop_mod()"
True if the properties were modified.
.ie n .IP "$change\->\fItext_mod()\fR" 4
.el .IP "\f(CW$change\fR\->\fItext_mod()\fR" 4
.IX Item "$change->text_mod()"
True if the text (content) was modified.

View file

@ -0,0 +1,670 @@
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "native::Ra 3"
.TH native::Ra 3 "2008-01-27" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
SVN::Ra \- Subversion remote access functions
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 2
\& use SVN::Core;
\& use SVN::Ra;
\&
\& my $ra = SVN::Ra\->new(\*(Aqfile:///tmp/svntest\*(Aq);
\& print $ra\->get_latest_revnum;
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
SVN::Ra wraps the object-oriented \f(CW\*(C`svn_ra_plugin_t\*(C'\fR functions,
providing access to a Subversion repository though a \s-1URL\s0, using
whichever repository access module is appropriate.
.SH "SVN::Ra"
.IX Header "SVN::Ra"
.SS "SVN::Ra\->new(...)"
.IX Subsection "SVN::Ra->new(...)"
The constructor creates an \s-1RA\s0 object and calls \f(CW\*(C`open\*(C'\fR for it. Its parameters
are either a hash of options or a single value containing the \s-1URL\s0 of the
repository. Valid options are:
.IP "url" 4
.IX Item "url"
The \s-1URL\s0 of the repository.
.IP "auth" 4
.IX Item "auth"
An \f(CW\*(C`auth_baton\*(C'\fR could be given to the \s-1SVN::RA\s0 object. Defaults to an
\&\f(CW\*(C`auth_provider\*(C'\fR with a \f(CW\*(C`username_provider\*(C'\fR. See SVN::Client for how to
create \f(CW\*(C`auth_baton\*(C'\fR.
.IP "pool" 4
.IX Item "pool"
The pool for the \s-1RA\s0 session to use. Member functions will also be
called with this pool. Defaults to a newly created root pool.
.IP "config" 4
.IX Item "config"
The config hash that could be obtained by calling
\&\f(CW\*(C`SVN::Core::config_get_config(undef)\*(C'\fR.
.IP "callback" 4
.IX Item "callback"
The \f(CW\*(C`ra_callback\*(C'\fR namespace to use. Defaults to SVN::Ra::Callbacks.
.PP
The following examples will both do the same thing, with all the optional
arguments taking their defaults:
.PP
.Vb 2
\& my $ra = SVN::Ra\->new(\*(Aqfile:///tmp/repos\*(Aq);
\& my $ra = SVN::Ra\->new(url => \*(Aqfile:///tmp/repos\*(Aq);
.Ve
.SS "\s-1METHODS\s0"
.IX Subsection "METHODS"
Please consult the svn_ra.h section in the Subversion \s-1API\s0. Member
functions of \f(CW\*(C`svn_ra_plugin_t\*(C'\fR can be called as methods of SVN::Ra
objects, with the \f(CW\*(C`session_baton\*(C'\fR and \f(CW\*(C`pool\*(C'\fR arguments omitted.
.ie n .IP "$ra\->change_rev_prop($revnum, $name, $value)" 4
.el .IP "\f(CW$ra\fR\->change_rev_prop($revnum, \f(CW$name\fR, \f(CW$value\fR)" 4
.IX Item "$ra->change_rev_prop($revnum, $name, $value)"
Sets the revision (unversioned) property \f(CW$name\fR to \f(CW$value\fR on
revision \f(CW$revnum\fR, or removes the property if \f(CW$value\fR is undef.
.Sp
.Vb 1
\& $ra\->change_rev_prop(123, \*(Aqsvn:log\*(Aq, \*(AqNew log message.\*(Aq);
.Ve
.Sp
Of course this will only work if there is a \f(CW\*(C`pre\-revprop\-change\*(C'\fR
hook available.
.ie n .IP "$ra\->check_path($path, $revnum)" 4
.el .IP "\f(CW$ra\fR\->check_path($path, \f(CW$revnum\fR)" 4
.IX Item "$ra->check_path($path, $revnum)"
Kind of node at \f(CW$path\fR in revision \f(CW$revnum\fR. A number which matches one
of these constants:
\&\f(CW$SVN::Node::none\fR, \f(CW$SVN::Node::file\fR,
\&\f(CW$SVN::Node::dir\fR, \f(CW$SVN::Node::unknown\fR.
.ie n .IP "$ra\->do_diff($revision, $target, $recurse, $ignore_ancestry, $versus_url, $editor)" 4
.el .IP "\f(CW$ra\fR\->do_diff($revision, \f(CW$target\fR, \f(CW$recurse\fR, \f(CW$ignore_ancestry\fR, \f(CW$versus_url\fR, \f(CW$editor\fR)" 4
.IX Item "$ra->do_diff($revision, $target, $recurse, $ignore_ancestry, $versus_url, $editor)"
.PD 0
.ie n .IP "$ra\->do_diff2($revision, $target, $recurse, $ignore_ancestry, $text_deltas, $versus_url, $editor)" 4
.el .IP "\f(CW$ra\fR\->do_diff2($revision, \f(CW$target\fR, \f(CW$recurse\fR, \f(CW$ignore_ancestry\fR, \f(CW$text_deltas\fR, \f(CW$versus_url\fR, \f(CW$editor\fR)" 4
.IX Item "$ra->do_diff2($revision, $target, $recurse, $ignore_ancestry, $text_deltas, $versus_url, $editor)"
.PD
Both of these return a SVN::Ra::Reporter with which you can describe
a working copy. It will then call methods on \f(CW$editor\fR to indicates
the differences between the repository and the working copy.
.Sp
The \f(CW\*(C`do_diff2\*(C'\fR method was added in Subversion\ 1.4. It adds the
\&\f(CW$text_deltas\fR option, which if false disables the generation of text
deltas on the editor. With \f(CW\*(C`do_diff\*(C'\fR text deltas are always generated.
.Sp
.Vb 4
\& my $reporter = $ra\->do_diff(1, \*(Aq\*(Aq, 1, 0, $repos_url,
\& MyEditor\->new);
\& $reporter\->set_path(...);
\& $reporter\->finish_report;
.Ve
.ie n .IP "$ra\->do_status($target, $revision, $recurse, $editor)" 4
.el .IP "\f(CW$ra\fR\->do_status($target, \f(CW$revision\fR, \f(CW$recurse\fR, \f(CW$editor\fR)" 4
.IX Item "$ra->do_status($target, $revision, $recurse, $editor)"
Returns a SVN::Ra::Reporter to which you can describe the status of
a working copy. It will then call methods on \f(CW$editor\fR to describe
the current status of the working copy compared to the repository.
.ie n .IP "$ra\->do_switch($revnum, $target, $recurse, $repos_url, $editor)" 4
.el .IP "\f(CW$ra\fR\->do_switch($revnum, \f(CW$target\fR, \f(CW$recurse\fR, \f(CW$repos_url\fR, \f(CW$editor\fR)" 4
.IX Item "$ra->do_switch($revnum, $target, $recurse, $repos_url, $editor)"
Returns a SVN::Ra::Reporter with which you can describe a working copy.
It will then call methods on \f(CW$editor\fR to indicate how to adjust the working
copy to switch it to revision \f(CW$revnum\fR of \f(CW$repos_url\fR.
.ie n .IP "$ra\->do_update($revision_to_update_to, $target, $recurse, $editor)" 4
.el .IP "\f(CW$ra\fR\->do_update($revision_to_update_to, \f(CW$target\fR, \f(CW$recurse\fR, \f(CW$editor\fR)" 4
.IX Item "$ra->do_update($revision_to_update_to, $target, $recurse, $editor)"
Returns a SVN::Ra::Reporter object. Call methods on the reporter to
describe the current state of your working copy (or whatever you're
updating). After calling the reporter's \f(CW\*(C`finish_report()\*(C'\fR method,
Subversion will generate calls to your \f(CW$editor\fR to describe the
differences between what you already have and the state of the repository in
\&\f(CW$revision_to_update_to\fR.
.Sp
To update to the latest revision, pass \f(CW$SVN::Core::INVALID_REVNUM\fR for
the first argument.
.Sp
\&\f(CW$target\fR should be the path to the part of the repository you are
interested in. You won't be given information about changes outside this
path. If you want everything, pass an empty string.
.Sp
If \f(CW$recurse\fR is true and the target is a directory, update
recursively; otherwise, update just the target and its immediate
entries, but not its child directories (if any).
.Sp
All paths are relative to the \s-1URL\s0 used to open \f(CW$ra\fR.
.Sp
The caller may not perform any \s-1RA\s0 operations using \f(CW$ra\fR before
finishing the report, and may not perform any \s-1RA\s0 operations using
\&\f(CW$ra\fR from within the editing operations of \f(CW$editor\fR.
.Sp
This example shows the simplest update, where the client tells the reporter
that it has nothing to start with:
.Sp
.Vb 3
\& my $reporter = $ra\->do_update($revnum, \*(Aq\*(Aq, 1, MyEditor\->new);
\& $reporter\->set_path(\*(Aq\*(Aq, 0, 1, undef);
\& $reporter\->finish_report;
.Ve
.ie n .IP "$ra\->get_commit_editor($logmsg, $callback, $callback_baton, $lock_tokens, $keep_locks)" 4
.el .IP "\f(CW$ra\fR\->get_commit_editor($logmsg, \f(CW$callback\fR, \f(CW$callback_baton\fR, \f(CW$lock_tokens\fR, \f(CW$keep_locks\fR)" 4
.IX Item "$ra->get_commit_editor($logmsg, $callback, $callback_baton, $lock_tokens, $keep_locks)"
.PD 0
.ie n .IP "$ra\->get_commit_editor2($logmsg, $callback, $callback_baton, $lock_tokens, $keep_locks)" 4
.el .IP "\f(CW$ra\fR\->get_commit_editor2($logmsg, \f(CW$callback\fR, \f(CW$callback_baton\fR, \f(CW$lock_tokens\fR, \f(CW$keep_locks\fR)" 4
.IX Item "$ra->get_commit_editor2($logmsg, $callback, $callback_baton, $lock_tokens, $keep_locks)"
.PD
Return an opaque editor object for committing a new revision to the
repository. The return values should be passed to the
SVN::Delta::Editor constructor to create an
editor object you can actually use. For example:
.Sp
.Vb 4
\& my $editor = SVN::Delta::Editor\->new(
\& $ra\->get_commit_editor(
\& "I\*(Aqm going to commit some changes from within my Perl code.",
\& \e&commit_callback, undef, {}, 0));
.Ve
.Sp
Now that you've got your editor you can call methods on it to describe
changes in the tree you want to make, such as adding directories, changing
file contents, etc. See SVN::Delta for documentation of the editor
interface.
.Sp
The \f(CW$callback\fR function will be called during your call to the
\&\f(CW\*(C`$ed\->close_edit()\*(C'\fR method, after the commit has succeeded. It will
not be called if there were no changes to commit. If you don't need it,
pass undef instead of a code ref.
.Sp
\&\f(CW\*(C`get_commit_editor2\*(C'\fR is identical to \f(CW\*(C`get_commit_editor\*(C'\fR except for
the information passed to the callback function. The new version, added
in Subversion\ 1.4, will pass the callback a single value (\s-1TODO:\s0 I
can' test this, but it's probably an object or hash ref) which contains
all the information. It also includes the error message from the
post-commit hook script, which is not available with \f(CW\*(C`get_commit_editor\*(C'\fR.
.Sp
The callback for the original version will be passed three arguments:
.RS 4
.IP "\(bu" 4
Number of the new revision.
.IP "\(bu" 4
Date and time that the revision was committed, which will be exactly
the same value as its \f(CW\*(C`svn:date\*(C'\fR revision property. It will be in
this format: \f(CW\*(C`2006\-04\-05T12:17:48.180320Z\*(C'\fR
.IP "\(bu" 4
The name of the author who committed the revision, which will be the same
as the \f(CW\*(C`svn:author\*(C'\fR revision property.
.RE
.RS 4
.Sp
The undef in the argument list in the example above is the baton which is
meant to be passed to the commit callback, but it isn't. This isn't a
problem since you can supply a closure as the callback so that it can get to
whatever variables you need.
.Sp
The \f(CW$logmsg\fR value should be a string which will be stored in the
\&\f(CW\*(C`svn:log\*(C'\fR revision property. If undef is passed instead then the
new revision won't have a \f(CW\*(C`svn:log\*(C'\fR property.
.Sp
\&\f(CW$lock_tokens\fR should be a reference to a hash mapping the paths to
lock tokens to use for them. I seems that with Subversion\ 1.2 this is
required, so if you aren't using any locks simply pass \f(CW\*(C`{}\*(C'\fR. In
Subversion\ 1.3.1 though it seems to be necessary to \fInot\fR pass this
argument at all.
.Sp
If \f(CW$keep_locks\fR is true then locks on the files committed won't be
released by the commit.
.Sp
The \f(CW\*(C`get_commit_editor()\*(C'\fR method itself returns a list of two items, the
first of which (a \f(CW\*(C`_p_svn_delta_editor_t\*(C'\fR object) is the actual editor.
The second is the editor baton. Neither is of any use without wrapping the
pair of them in a SVN::Delta::Editor.
.RE
.ie n .IP "$ra\->get_dated_revision($time)" 4
.el .IP "\f(CW$ra\fR\->get_dated_revision($time)" 4
.IX Item "$ra->get_dated_revision($time)"
\&\s-1TODO\s0 \- this doesn't seem to work in Subversion\ 1.3.
.ie n .IP "$ra\->get_dir($path, $revnum)" 4
.el .IP "\f(CW$ra\fR\->get_dir($path, \f(CW$revnum\fR)" 4
.IX Item "$ra->get_dir($path, $revnum)"
.PD 0
.ie n .IP "$ra\->get_dir2($path, $revnum, $dirent_fields)" 4
.el .IP "\f(CW$ra\fR\->get_dir2($path, \f(CW$revnum\fR, \f(CW$dirent_fields\fR)" 4
.IX Item "$ra->get_dir2($path, $revnum, $dirent_fields)"
.PD
Fetch the directory entries and properties of the directory at \f(CW$path\fR
in revision \f(CW$revnum\fR
.Sp
A list of three values are returned. The first is a reference to a hash
of directory entries. The keys are the names of all the files and
directories in \f(CW$path\fR (not full paths, just the filenames). The values
are _p_svn_dirent_t objects, with all their
fields filled in. The third parameter to \f(CW\*(C`get_dir2\*(C'\fR allows you to
select particular fields. \s-1TODO:\s0 I don't think the constants you'd use
to construct the \f(CW$dirent_fields\fR value are provided in the Perl \s-1API\s0.
.Sp
The second value is a number, which is only valid if \f(CW$revnum\fR is
\&\f(CW$SVN::Core::INVALID_REVNUM\fR. If that is the case then the latest revision
will be fetched, and the revision number (the \s-1HEAD\s0 revision) will be returned
as the second value. Otherwise the revision number returned will be
completely arbitrary.
.Sp
The third value returned will be a reference to a hash of all properties
on the directory. This means \fIall\fR properties: not just ones controlled by
the user and stored in the repository fs, but non-tweakable ones
generated by the \s-1SCM\s0 system itself (e.g. 'wcprops', 'entryprops', etc).
.Sp
.Vb 3
\& my ($dirents, undef, $props) = $ra\->get_dir(\*(Aq/trunk/dir\*(Aq, 123);
\& my ($dirents, $fetched_revnum, $props) = $ra\->get_dir(
\& \*(Aq/trunk/dir\*(Aq, $SVN::Core::INVALID_REVNUM);
.Ve
.ie n .IP "$ra\->get_file($path, $revnum, $fh)" 4
.el .IP "\f(CW$ra\fR\->get_file($path, \f(CW$revnum\fR, \f(CW$fh\fR)" 4
.IX Item "$ra->get_file($path, $revnum, $fh)"
Fetch the contents and properties of the file at \f(CW$path\fR in revision
\&\f(CW$revnum\fR. \f(CW$fh\fR should be a Perl filehandle, to which the contents
of the file will be written, or undef if you don't need the file contents.
.Sp
Note that \f(CW$path\fR cannot end in a slash unless it is just '/'.
.Sp
A list of two values are returned. The first is a number, which is only
valid if \f(CW$revnum\fR is \f(CW$SVN::Core::INVALID_REVNUM\fR. If that is the
case then the latest revision will be fetched, and the revision number
(the \s-1HEAD\s0 revision) will be returned as the first value. Otherwise the
number returned will be completely arbitrary.
.Sp
The second value returned will be a reference to a hash of all properties
on the file. This means \fIall\fR properties: not just ones controlled by
the user and stored in the repository fs, but non-tweakable ones
generated by the \s-1SCM\s0 system itself (e.g. 'wcprops', 'entryprops', etc).
.Sp
.Vb 2
\& my (undef, $props) = $ra\->get_file(
\& \*(Aq/trunk/foo\*(Aq, 123, undef);
\&
\& open my $fh, \*(Aq>\*(Aq, \*(Aqtmp_out\*(Aq
\& or die "error opening file: $!";
\& my (undef, $props) = $ra\->get_file(
\& \*(Aq/trunk/foo\*(Aq, 123, $fh);
\&
\& my ($fetched_revnum, $props) = $ra\->get_file(
\& \*(Aq/trunk/foo\*(Aq, $SVN::Core::INVALID_REVNUM, $fh);
.Ve
.ie n .IP "$ra\->get_file_revs($path, $start, $end, \e&callback)" 4
.el .IP "\f(CW$ra\fR\->get_file_revs($path, \f(CW$start\fR, \f(CW$end\fR, \e&callback)" 4
.IX Item "$ra->get_file_revs($path, $start, $end, &callback)"
\&\s-1TODO\s0 \- doesn't seem to work in Subversion 1.3
.ie n .IP "$ra\->get_latest_revnum" 4
.el .IP "\f(CW$ra\fR\->get_latest_revnum" 4
.IX Item "$ra->get_latest_revnum"
Return the number of the latest revision in the repository (\s-1HEAD\s0).
.ie n .IP "$ra\->get_locations($path, $peg_revnum, \e@location_revisions)" 4
.el .IP "\f(CW$ra\fR\->get_locations($path, \f(CW$peg_revnum\fR, \e@location_revisions)" 4
.IX Item "$ra->get_locations($path, $peg_revnum, @location_revisions)"
\&\s-1TODO\s0 \- doesn't seem to work in Subversion 1.3
.ie n .IP "$ra\->get_lock($path)" 4
.el .IP "\f(CW$ra\fR\->get_lock($path)" 4
.IX Item "$ra->get_lock($path)"
Returns a _p_svn_lock_t object containing
information about the lock at \f(CW$path\fR, or undef if that path isn't
currently locked.
.ie n .IP "$ra\->get_locks($path)" 4
.el .IP "\f(CW$ra\fR\->get_locks($path)" 4
.IX Item "$ra->get_locks($path)"
\&\s-1TODO\s0 \- doesn't seem to work in Subversion 1.3
.ie n .IP "$ra\->get_log(\e@paths, $start, $end, $limit, $discover_changed_paths, $strict_node_history, \e&callback)" 4
.el .IP "\f(CW$ra\fR\->get_log(\e@paths, \f(CW$start\fR, \f(CW$end\fR, \f(CW$limit\fR, \f(CW$discover_changed_paths\fR, \f(CW$strict_node_history\fR, \e&callback)" 4
.IX Item "$ra->get_log(@paths, $start, $end, $limit, $discover_changed_paths, $strict_node_history, &callback)"
For \f(CW$limit\fR revisions from \f(CW$start\fR to \f(CW$end\fR, invoke the receiver
\&\f(CW\*(C`callback()\*(C'\fR with information about the changes made in the revision
(log message, time, etc.).
.Sp
The caller may not invoke any \s-1RA\s0 operations using \f(CW$ra\fR from
within the callback function. They may work in some situations, but
it's not guaranteed.
.Sp
The first argument can be either a single string or a reference to an
array of strings. Each of these indicates a path in the repository
which you are interested in. Revisions which don't change any of these
paths (or files below them) will be ignored. Simply pass '' if you don't
want to limit by path.
.Sp
\&\f(CW$start\fR and \f(CW$end\fR should be revision numbers. If \f(CW$start\fR has a lower
value than \f(CW$end\fR then the revisions will be produced in ascending order
(r1, r2, ...), otherwise in descending order. If \f(CW$start\fR is
\&\f(CW$SVN::Core::INVALID_REVNUM\fR then it defaults to the latest revision.
.Sp
\&\s-1TODO\s0 \- the previous sentence should also be true of \f(CW$end\fR, but doing that
gets an error message in Subversion 1.3.
.Sp
\&\f(CW$limit\fR is a number indicating the maximum number of times that the
receiver \f(CW\*(C`callback()\*(C'\fR should be called. If it is 0, there will be no
limit.
.Sp
If \f(CW$discover_changed_paths\fR is true, then information about which changes
were made to which paths is passed to \f(CW\*(C`callback()\*(C'\fR.
.Sp
If \f(CW$strict_node_history\fR is true, copy history will not be traversed
(if any exists) when harvesting the revision logs for each path.
.Sp
The callback function will be given the following arguments:
.RS 4
.IP "\(bu" 4
A reference to a hash of paths changed by the revision. Only passed if
\&\f(CW$discover_changed_paths\fR is true, otherwise undef is passed in its
place.
.Sp
The hash's keys are the full paths to the files and directories changed.
The values are _p_svn_log_changed_path_t
objects.
.IP "\(bu" 4
Revision number.
.IP "\(bu" 4
Name of user who made the change, or undef if not known.
.IP "\(bu" 4
Date and time the revision was committed.
.IP "\(bu" 4
Log message as a single string, or undef.
.IP "\(bu" 4
A pool object.
.RE
.RS 4
.Sp
This example prints some of the information received in a simple format,
showing which paths were changed in each revision, for all revisions starting
from the first:
.Sp
.Vb 2
\& $ra\->get_log(\*(Aq\*(Aq, 1, $ra\->get_latest_revnum, 0, 1, 0,
\& \e&log_callback);
\&
\& sub log_callback
\& {
\& my ($paths, $revnum, $user, $datetime, $logmsg) = @_;
\& print "$datetime \- $user \- r$revnum\en";
\&
\& while (my ($path, $changes) = each %$paths) {
\& print $changes\->action, " $path\en";
\& if ($changes\->copyfrom_path) {
\& print " from ", $changes\->copyfrom_path,
\& " r", $changes\->copyfrom_rev, "\en"
\& }
\& }
\&
\& print "\en";
\& }
.Ve
.RE
.ie n .IP "$ra\->get_repos_root" 4
.el .IP "\f(CW$ra\fR\->get_repos_root" 4
.IX Item "$ra->get_repos_root"
Returns the repository's root \s-1URL\s0. The value will not include
a trailing '/'. The returned \s-1URL\s0 is guaranteed to be a prefix of the
session's \s-1URL\s0.
.ie n .IP "$ra\->get_uuid" 4
.el .IP "\f(CW$ra\fR\->get_uuid" 4
.IX Item "$ra->get_uuid"
Returns the repository's \s-1UUID\s0 as a string.
.ie n .IP "$ra\->lock(\e%path_revs, $comment, $steal_lock, \e&callback)" 4
.el .IP "\f(CW$ra\fR\->lock(\e%path_revs, \f(CW$comment\fR, \f(CW$steal_lock\fR, \e&callback)" 4
.IX Item "$ra->lock(%path_revs, $comment, $steal_lock, &callback)"
\&\s-1TODO\s0 \- doesn't seem to work in Subversion 1.3.2
.ie n .IP "$ra\->reparent($url)" 4
.el .IP "\f(CW$ra\fR\->reparent($url)" 4
.IX Item "$ra->reparent($url)"
Change the root \s-1URL\s0 of the session in \f(CW$ra\fR to point to a different
path. \f(CW$url\fR must be in the same repository as the one \f(CW$ra\fR is
already accessing.
.Sp
New in Subversion\ 1.4.
.ie n .IP "$ra\->replay($revnum, $low_water_mark, $send_deltas, $editor)" 4
.el .IP "\f(CW$ra\fR\->replay($revnum, \f(CW$low_water_mark\fR, \f(CW$send_deltas\fR, \f(CW$editor\fR)" 4
.IX Item "$ra->replay($revnum, $low_water_mark, $send_deltas, $editor)"
Call methods on \f(CW$editor\fR to describe the changes made in the revisions
after \f(CW$low_water_mark\fR, up to revision \f(CW$revnum\fR. This is like using
\&\f(CW\*(C`do_update()\*(C'\fR, except that it doesn't return a reporter object, and so
you don't have to describe a working copy to it. It assumes that you've
already got everything up to \f(CW$low_water_mark\fR.
.Sp
If \f(CW$send_deltas\fR is true then file contents and property values will
be supplied, otherwise just filename changes.
.Sp
New in Subversion\ 1.4.
.ie n .IP "$ra\->rev_prop($revnum, $name)" 4
.el .IP "\f(CW$ra\fR\->rev_prop($revnum, \f(CW$name\fR)" 4
.IX Item "$ra->rev_prop($revnum, $name)"
Return the value of the unversioned property \f(CW$name\fR from revision \f(CW$revnum\fR.
Returns undef if there is no such property.
.Sp
.Vb 1
\& print $ra\->rev_prop(123, \*(Aqsvn:date\*(Aq);
.Ve
.ie n .IP "$ra\->rev_proplist($revnum)" 4
.el .IP "\f(CW$ra\fR\->rev_proplist($revnum)" 4
.IX Item "$ra->rev_proplist($revnum)"
Returns a reference to a hash containing all the unversioned properties
of revision \f(CW$revnum\fR.
.Sp
.Vb 2
\& my $props = $ra\->rev_proplist(123);
\& print $props\->{\*(Aqsvn:log\*(Aq};
.Ve
.ie n .IP "$ra\->stat($path, $revnum)" 4
.el .IP "\f(CW$ra\fR\->stat($path, \f(CW$revnum\fR)" 4
.IX Item "$ra->stat($path, $revnum)"
Returns a _p_svn_dirent_t object containing
information about the file at \f(CW$path\fR in revision \f(CW$revnum\fR.
.ie n .IP "$ra\->unlock(\e%path_tokens, $break_lock, \e&callback)" 4
.el .IP "\f(CW$ra\fR\->unlock(\e%path_tokens, \f(CW$break_lock\fR, \e&callback)" 4
.IX Item "$ra->unlock(%path_tokens, $break_lock, &callback)"
\&\s-1TODO\s0 \- doesn't seem to work in Subversion 1.3.2
.SH "SVN::Ra::Reporter"
.IX Header "SVN::Ra::Reporter"
The SVN::Ra methods \f(CW\*(C`do_diff\*(C'\fR, \f(CW\*(C`do_status\*(C'\fR, \f(CW\*(C`do_switch\*(C'\fR, and
\&\f(CW\*(C`do_update\*(C'\fR all return a SVN::Ra::Reporter object, which can be used
to describe the working copy (or other available data) which the client has.
Subversion uses this to figure out what new information should be provided
through a tree delta editor.
.PP
Objects of this class are actually simple wrappers around underlying
\&\f(CW\*(C`svn_ra_reporter2_t\*(C'\fR objects and their associated baton.
.SS "\s-1METHODS\s0"
.IX Subsection "METHODS"
.ie n .IP "$reporter\->set_path($path, $revision, $start_empty, $lock_token, $pool)" 4
.el .IP "\f(CW$reporter\fR\->set_path($path, \f(CW$revision\fR, \f(CW$start_empty\fR, \f(CW$lock_token\fR, \f(CW$pool\fR)" 4
.IX Item "$reporter->set_path($path, $revision, $start_empty, $lock_token, $pool)"
Describe a working copy \f(CW$path\fR as being at a particular \f(CW$revision\fR.
.Sp
If \f(CW$start_empty\fR is true and \f(CW$path\fR is a directory, the
implementor should assume the directory has no entries or properties.
.Sp
This will \fIoverride\fR any previous \f(CW\*(C`set_path()\*(C'\fR calls made on parent
paths. \f(CW$path\fR is relative to the \s-1URL\s0 specified in \f(CW\*(C`SVN::Ra\->open()\*(C'\fR
or \f(CW\*(C`SVN::Ra\->new()\*(C'\fR.
.Sp
If \f(CW$lock_token\fR is not undef, it is the lock token for \f(CW$path\fR in the \s-1WC\s0.
.Sp
All temporary allocations are done in \f(CW$pool\fR.
.ie n .IP "$reporter\->delete_path($path, $pool)" 4
.el .IP "\f(CW$reporter\fR\->delete_path($path, \f(CW$pool\fR)" 4
.IX Item "$reporter->delete_path($path, $pool)"
Describe a working copy \f(CW$path\fR as missing.
.Sp
All temporary allocations are done in \f(CW$pool\fR.
.ie n .IP "$reporter\->link_path($path, $url, $revision, $start_empty, $lock_token, $pool)" 4
.el .IP "\f(CW$reporter\fR\->link_path($path, \f(CW$url\fR, \f(CW$revision\fR, \f(CW$start_empty\fR, \f(CW$lock_token\fR, \f(CW$pool\fR)" 4
.IX Item "$reporter->link_path($path, $url, $revision, $start_empty, $lock_token, $pool)"
Like \f(CW\*(C`set_path()\*(C'\fR, but differs in that \f(CW$path\fR in the working copy
(relative to the root of the report driver) isn't a reflection of
\&\f(CW$path\fR in the repository (relative to the \s-1URL\s0 specified when
opening the \s-1RA\s0 layer), but is instead a reflection of a different
repository \f(CW$url\fR at \f(CW$revision\fR.
.Sp
If \f(CW$start_empty\fR is true and \f(CW$path\fR is a directory,
the implementor should assume the directory has no entries or props.
.Sp
If \f(CW$lock_token\fR is not undef, it is the lock token for \f(CW$path\fR in the \s-1WC\s0.
.Sp
All temporary allocations are done in \f(CW$pool\fR.
.ie n .IP "$reporter\->finish_report($pool)" 4
.el .IP "\f(CW$reporter\fR\->finish_report($pool)" 4
.IX Item "$reporter->finish_report($pool)"
Call this when the state report is finished; any directories
or files not explicitly 'set' are assumed to be at the
baseline revision originally passed into \f(CW\*(C`do_update()\*(C'\fR. No other
reporting functions, including \f(CW\*(C`abort_report()\*(C'\fR, should be called after
calling this function.
.ie n .IP "$reporter\->abort_report($pool)" 4
.el .IP "\f(CW$reporter\fR\->abort_report($pool)" 4
.IX Item "$reporter->abort_report($pool)"
If an error occurs during a report, this method should cause the
filesystem transaction to be aborted and cleaned up. No other reporting
methods should be called after calling this method.
.SH "SVN::Ra::Callbacks"
.IX Header "SVN::Ra::Callbacks"
This is the wrapper class for \f(CW\*(C`svn_ra_callback_t\*(C'\fR. To supply custom
callbacks to SVN::Ra, subclass this class and override the member
functions.
.SH "AUTHORS"
.IX Header "AUTHORS"
Chia-liang Kao <clkao@clkao.org>
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2003 CollabNet. All rights reserved.
.PP
This software is licensed as described in the file \s-1COPYING\s0, which you
should have received as part of this distribution. The terms are also
available at http://subversion.tigris.org/license\-1.html. If newer
versions of this license are posted there, you may use a newer version
instead, at your option.
.PP
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
and logs, available at http://subversion.tigris.org/.

View file

@ -0,0 +1,398 @@
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "native::Repos 3"
.TH native::Repos 3 "2008-03-17" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
SVN::Repos \- Subversion repository functions
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 3
\& use SVN::Core;
\& use SVN::Repos;
\& use SVN::Fs;
\&
\& my $repos = SVN::Repos::open(\*(Aq/path/to/repos\*(Aq);
\& print $repos\->fs()\->youngest_rev;
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
SVN::Repos wraps the object-oriented \f(CW\*(C`svn_repos_t\*(C'\fR functions, providing
access to a Subversion repository on the local filesystem.
.SS "\s-1CONSTRUCTORS\s0"
.IX Subsection "CONSTRUCTORS"
.IP "SVN::Repos::open($path)" 4
.IX Item "SVN::Repos::open($path)"
This function opens an existing repository, and returns an
\&\f(CW\*(C`SVN::Repos\*(C'\fR object.
.ie n .IP "create($path, undef, undef, $config, $fs_config)" 4
.el .IP "create($path, undef, undef, \f(CW$config\fR, \f(CW$fs_config\fR)" 4
.IX Item "create($path, undef, undef, $config, $fs_config)"
This function creates a new repository, and returns an \f(CW\*(C`SVN::Repos\*(C'\fR
object.
.SS "\s-1METHODS\s0"
.IX Subsection "METHODS"
.ie n .IP "$repos\->dump_fs($dump_fh, $feedback_fh, $start_rev, $end_rev, $incremental, $cancel_func, $cancel_baton)" 4
.el .IP "\f(CW$repos\fR\->dump_fs($dump_fh, \f(CW$feedback_fh\fR, \f(CW$start_rev\fR, \f(CW$end_rev\fR, \f(CW$incremental\fR, \f(CW$cancel_func\fR, \f(CW$cancel_baton\fR)" 4
.IX Item "$repos->dump_fs($dump_fh, $feedback_fh, $start_rev, $end_rev, $incremental, $cancel_func, $cancel_baton)"
.PD 0
.ie n .IP "$repos\->dump_fs2($dump_fh, $feedback_fh, $start_rev, $end_rev, $incremental, $deltify, $cancel_func, $cancel_baton)" 4
.el .IP "\f(CW$repos\fR\->dump_fs2($dump_fh, \f(CW$feedback_fh\fR, \f(CW$start_rev\fR, \f(CW$end_rev\fR, \f(CW$incremental\fR, \f(CW$deltify\fR, \f(CW$cancel_func\fR, \f(CW$cancel_baton\fR)" 4
.IX Item "$repos->dump_fs2($dump_fh, $feedback_fh, $start_rev, $end_rev, $incremental, $deltify, $cancel_func, $cancel_baton)"
.PD
Create a dump file of the repository from revision \f(CW$start_rev\fR to \f(CW$end_rev\fR
, store it into the filehandle \f(CW$dump_fh\fR, and write feedback on the progress
of the operation to filehandle \f(CW$feedback_fh\fR.
.Sp
If \f(CW$incremental\fR is \s-1TRUE\s0, the first revision dumped will be a diff
against the previous revision (usually it looks like a full dump of
the tree).
.Sp
If \f(CW$use_deltas\fR is \s-1TRUE\s0, output only node properties which have
changed relative to the previous contents, and output text contents
as svndiff data against the previous contents. Regardless of how
this flag is set, the first revision of a non-incremental dump will
be done with full plain text. A dump with \f(CW@a\fR use_deltas set cannot
be loaded by Subversion 1.0.x.
.Sp
According to svn_repos.h, the \f(CW$cancel_func\fR is a function that is called
periodically and given \f(CW$cancel_baton\fR as a parameter to determine whether
the client wishes to cancel the dump. You must supply \f(CW\*(C`undef\*(C'\fR at the very
least.
.Sp
Example:
.Sp
.Vb 2
\& use SVN::Core;
\& use SVN::Repos;
\&
\& my $repos = SVN::Repos::open (\*(Aq/repo/sandbox\*(Aq);
\&
\& open my $fh, ">/tmp/tmp.dump" or die "Cannot open file: $!\en";
\&
\& my $start_rev = 10;
\& my $end_rev = 20;
\& my $incremental = 1;
\& my $deltify = 1;
\&
\& $repos\->dump_fs2($fh, \e*STDOUT, # Dump file => $fh, Feedback => STDOUT
\& $start_rev, $end_rev, # Revision Range
\& $incremental, $deltify, # Options
\& undef, undef); # Cancel Function
\&
\& close $fh;
.Ve
.ie n .IP "$repos\->load_fs($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $cancel_func, $cancel_baton);" 4
.el .IP "\f(CW$repos\fR\->load_fs($dumpfile_fh, \f(CW$feedback_fh\fR, \f(CW$uuid_action\fR, \f(CW$parent_dir\fR, \f(CW$cancel_func\fR, \f(CW$cancel_baton\fR);" 4
.IX Item "$repos->load_fs($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $cancel_func, $cancel_baton);"
.PD 0
.ie n .IP "$repos\->load_fs2($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $use_pre_commit_hook, $use_post_commit_hook, $cancel_func, $cancel_baton);" 4
.el .IP "\f(CW$repos\fR\->load_fs2($dumpfile_fh, \f(CW$feedback_fh\fR, \f(CW$uuid_action\fR, \f(CW$parent_dir\fR, \f(CW$use_pre_commit_hook\fR, \f(CW$use_post_commit_hook\fR, \f(CW$cancel_func\fR, \f(CW$cancel_baton\fR);" 4
.IX Item "$repos->load_fs2($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $use_pre_commit_hook, $use_post_commit_hook, $cancel_func, $cancel_baton);"
.PD
Loads a dumpfile specified by the \f(CW$dumpfile_fh\fR filehandle into the repository.
If the dumpstream contains copy history that is unavailable in the repository,
an error will be thrown.
.Sp
The repository's \s-1UUID\s0 will be updated iff the dumpstream contains a \s-1UUID\s0 and
\&\f(CW$uuid_action\fR is not equal to \f(CW$SVN::Repos::load_uuid_ignore\fR and either the
repository contains no revisions or \f(CW$uuid_action\fR is equal to
\&\f(CW$SVN::Repos::load_uuid_force\fR.
.Sp
If the dumpstream contains no \s-1UUID\s0, then \f(CW$uuid_action\fR is
ignored and the repository \s-1UUID\s0 is not touched.
.Sp
If \f(CW$parent_dir\fR is not null, then the parser will reparent all the
loaded nodes, from root to \f(CW@a\fR parent_dir. The directory \f(CW$parent_dir\fR
must be an existing directory in the repository.
.Sp
If \f(CW$use_pre_commit_hook\fR is set, call the repository's pre-commit
hook before committing each loaded revision.
.Sp
If \f(CW$use_post_commit_hook\fR is set, call the repository's
post-commit hook after committing each loaded revision.
.Sp
If \f(CW$cancel_func\fR is not \s-1NULL\s0, it is called periodically with
\&\f(CW$cancel_baton\fR as argument to see if the client wishes to cancel
the load.
.Sp
You must at least provide undef for these parameters for the method call
to work.
.Sp
Example:
use SVN::Core;
use SVN::Repos;
.Sp
.Vb 1
\& my $repos = SVN::Repos::open (\*(Aq/repo/test_repo\*(Aq);
\&
\& open my $fh, "/repo/sandbox.dump" or die "Cannot open file: $!\en";
\&
\& my $parent_dir = \*(Aq/\*(Aq;
\& my $use_pre_commit_hook = 0;
\& my $use_post_commit_hook = 0;
\&
\& $repos\->load_fs2($fh, \e*STDOUT,
\& $SVN::Repos::load_uuid_ignore, # Ignore uuid
\& $parent_dir,
\& $use_pre_commit_hook, # Use pre\-commit hook?
\& $use_post_commit_hook, # Use post\-commit hook?
\& undef, undef);
\&
\&
\& close $fh;
.Ve
.ie n .IP "$repos\->\fIfs()\fR" 4
.el .IP "\f(CW$repos\fR\->\fIfs()\fR" 4
.IX Item "$repos->fs()"
Returns the \f(CW\*(C`SVN::Fs\*(C'\fR object for this repository.
.ie n .IP "$repos\->get_logs([$path, ...], $start, $end, $discover_changed_paths, $strict_node_history, $receiver)" 4
.el .IP "\f(CW$repos\fR\->get_logs([$path, ...], \f(CW$start\fR, \f(CW$end\fR, \f(CW$discover_changed_paths\fR, \f(CW$strict_node_history\fR, \f(CW$receiver\fR)" 4
.IX Item "$repos->get_logs([$path, ...], $start, $end, $discover_changed_paths, $strict_node_history, $receiver)"
Iterates over all the revisions that affect the list of paths passed
as the first parameter, starting at \f(CW$start\fR, and ending at \f(CW$end\fR.
.Sp
\&\f(CW$receiver\fR is called for each change. The arguments to \f(CW$receiver\fR are:
.RS 4
.ie n .IP "$self" 4
.el .IP "\f(CW$self\fR" 4
.IX Item "$self"
The \f(CW\*(C`SVN::Repos\*(C'\fR object.
.ie n .IP "$paths" 4
.el .IP "\f(CW$paths\fR" 4
.IX Item "$paths"
\&\f(CW\*(C`undef\*(C'\fR if \f(CW$discover_changed_paths\fR is false. Otherwise, contains a hash
of paths that have changed in this revision.
.ie n .IP "$rev" 4
.el .IP "\f(CW$rev\fR" 4
.IX Item "$rev"
The revision this change occured in.
.ie n .IP "$date" 4
.el .IP "\f(CW$date\fR" 4
.IX Item "$date"
The date and time the revision occured.
.ie n .IP "$msg" 4
.el .IP "\f(CW$msg\fR" 4
.IX Item "$msg"
The log message associated with this revision.
.ie n .IP "$pool" 4
.el .IP "\f(CW$pool\fR" 4
.IX Item "$pool"
An \f(CW\*(C`SVN::Pool\*(C'\fR object which may be used in the function.
.RE
.RS 4
.Sp
If \f(CW$strict_node_history\fR is true then copies will not be traversed.
.RE
.SS "\s-1ADDITIONAL\s0 \s-1METHODS\s0"
.IX Subsection "ADDITIONAL METHODS"
The following methods work, but are not currently documented in this
file. Please consult the svn_repos.h section in the Subversion \s-1API\s0
for more details.
.ie n .IP "$repos\->get_commit_editor(...)" 4
.el .IP "\f(CW$repos\fR\->get_commit_editor(...)" 4
.IX Item "$repos->get_commit_editor(...)"
.PD 0
.ie n .IP "$repos\->get_commit_editor2(...)" 4
.el .IP "\f(CW$repos\fR\->get_commit_editor2(...)" 4
.IX Item "$repos->get_commit_editor2(...)"
.ie n .IP "$repos\->path(...)" 4
.el .IP "\f(CW$repos\fR\->path(...)" 4
.IX Item "$repos->path(...)"
.ie n .IP "$repos\->db_env(...)" 4
.el .IP "\f(CW$repos\fR\->db_env(...)" 4
.IX Item "$repos->db_env(...)"
.ie n .IP "$repos\->lock_dir(...)" 4
.el .IP "\f(CW$repos\fR\->lock_dir(...)" 4
.IX Item "$repos->lock_dir(...)"
.ie n .IP "$repos\->db_lockfile(...)" 4
.el .IP "\f(CW$repos\fR\->db_lockfile(...)" 4
.IX Item "$repos->db_lockfile(...)"
.ie n .IP "$repos\->hook_dir(...)" 4
.el .IP "\f(CW$repos\fR\->hook_dir(...)" 4
.IX Item "$repos->hook_dir(...)"
.ie n .IP "$repos\->start_commit_hook(...)" 4
.el .IP "\f(CW$repos\fR\->start_commit_hook(...)" 4
.IX Item "$repos->start_commit_hook(...)"
.ie n .IP "$repos\->pre_commit_hook(...)" 4
.el .IP "\f(CW$repos\fR\->pre_commit_hook(...)" 4
.IX Item "$repos->pre_commit_hook(...)"
.ie n .IP "$repos\->post_commit_hook(...)" 4
.el .IP "\f(CW$repos\fR\->post_commit_hook(...)" 4
.IX Item "$repos->post_commit_hook(...)"
.ie n .IP "$repos\->pre_revprop_change(...)" 4
.el .IP "\f(CW$repos\fR\->pre_revprop_change(...)" 4
.IX Item "$repos->pre_revprop_change(...)"
.ie n .IP "$repos\->post_revprop_change(...)" 4
.el .IP "\f(CW$repos\fR\->post_revprop_change(...)" 4
.IX Item "$repos->post_revprop_change(...)"
.ie n .IP "$repos\->dated_revision(...)" 4
.el .IP "\f(CW$repos\fR\->dated_revision(...)" 4
.IX Item "$repos->dated_revision(...)"
.ie n .IP "$repos\->fs_commit_txn(...)" 4
.el .IP "\f(CW$repos\fR\->fs_commit_txn(...)" 4
.IX Item "$repos->fs_commit_txn(...)"
.ie n .IP "$repos\->fs_being_txn_for_commit(...)" 4
.el .IP "\f(CW$repos\fR\->fs_being_txn_for_commit(...)" 4
.IX Item "$repos->fs_being_txn_for_commit(...)"
.ie n .IP "$repos\->fs_being_txn_for_update(...)" 4
.el .IP "\f(CW$repos\fR\->fs_being_txn_for_update(...)" 4
.IX Item "$repos->fs_being_txn_for_update(...)"
.ie n .IP "$repos\->fs_change_rev_prop(...)" 4
.el .IP "\f(CW$repos\fR\->fs_change_rev_prop(...)" 4
.IX Item "$repos->fs_change_rev_prop(...)"
.ie n .IP "$repos\->node_editor(...)" 4
.el .IP "\f(CW$repos\fR\->node_editor(...)" 4
.IX Item "$repos->node_editor(...)"
.ie n .IP "$repos\->dump_fs(...)" 4
.el .IP "\f(CW$repos\fR\->dump_fs(...)" 4
.IX Item "$repos->dump_fs(...)"
.ie n .IP "$repos\->load_fs(...)" 4
.el .IP "\f(CW$repos\fR\->load_fs(...)" 4
.IX Item "$repos->load_fs(...)"
.ie n .IP "$repos\->get_fs_build_parser(...)" 4
.el .IP "\f(CW$repos\fR\->get_fs_build_parser(...)" 4
.IX Item "$repos->get_fs_build_parser(...)"
.PD
.SH "AUTHORS"
.IX Header "AUTHORS"
Chia-liang Kao <clkao@clkao.org>
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2003\-2006 CollabNet. All rights reserved.
.PP
This software is licensed as described in the file \s-1COPYING\s0, which you
should have received as part of this distribution. The terms are also
available at http://subversion.tigris.org/license\-1.html. If newer
versions of this license are posted there, you may use a newer version
instead, at your option.
.PP
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
and logs, available at http://subversion.tigris.org/.

View file

@ -0,0 +1,473 @@
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "native::Wc 3"
.TH native::Wc 3 "2007-11-05" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
SVN::Wc \- Subversion working copy functions
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
Incomplete
.SH "OBJECTS"
.IX Header "OBJECTS"
.SS "svn_wc_status_t"
.IX Subsection "svn_wc_status_t"
.ie n .IP "$wcstat\->\fIentry()\fR" 4
.el .IP "\f(CW$wcstat\fR\->\fIentry()\fR" 4
.IX Item "$wcstat->entry()"
A svn_wc_entry_t object for the item. Can be undef if not under version
control.
.ie n .IP "$wcstat\->\fItext_status()\fR" 4
.el .IP "\f(CW$wcstat\fR\->\fItext_status()\fR" 4
.IX Item "$wcstat->text_status()"
An integer representing the status of the item's text. Can be one of the
\&\f(CW$SVN::Wc::Status::\fR* constants.
.ie n .IP "$wcstat\->\fIprop_status()\fR" 4
.el .IP "\f(CW$wcstat\fR\->\fIprop_status()\fR" 4
.IX Item "$wcstat->prop_status()"
An integer representing the status of the item's properties. Can be one of the
\&\f(CW$SVN::Wc::Status::\fR* constants.
.ie n .IP "$wcstat\->\fIlocked()\fR" 4
.el .IP "\f(CW$wcstat\fR\->\fIlocked()\fR" 4
.IX Item "$wcstat->locked()"
A boolean telling if the item is locked. A directory can be locked if a
working copy update was interrupted.
.ie n .IP "$wcstat\->\fIcopied()\fR" 4
.el .IP "\f(CW$wcstat\fR\->\fIcopied()\fR" 4
.IX Item "$wcstat->copied()"
A boolean telling if the item was copied. A file or directory can be copied if
it's scheduled for addition-with-history (or part of a subtree that is
scheduled as such).
.ie n .IP "$wcstat\->\fIswitched()\fR" 4
.el .IP "\f(CW$wcstat\fR\->\fIswitched()\fR" 4
.IX Item "$wcstat->switched()"
A boolean telling if the item was switched. A file or directory can be
switched if the switch command has been used.
.ie n .IP "$wcstat\->\fIrepos_text_status()\fR" 4
.el .IP "\f(CW$wcstat\fR\->\fIrepos_text_status()\fR" 4
.IX Item "$wcstat->repos_text_status()"
An integer representing the status of the item's text in the repository. Can
be one of the \f(CW$SVN::Wc::Status::\fR* constants.
.ie n .IP "$wcstat\->\fIrepos_prop_status()\fR" 4
.el .IP "\f(CW$wcstat\fR\->\fIrepos_prop_status()\fR" 4
.IX Item "$wcstat->repos_prop_status()"
An integer representing the status of the item's properties in the repository.
Can be one of the \f(CW$SVN::Wc::Status::\fR* constants.
.SS "svn_wc_entry_t"
.IX Subsection "svn_wc_entry_t"
.ie n .IP "$wcent\->\fIname()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIname()\fR" 4
.IX Item "$wcent->name()"
Entry's name.
.ie n .IP "$wcent\->\fIrevision()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIrevision()\fR" 4
.IX Item "$wcent->revision()"
Base revision.
.ie n .IP "$wcent\->\fIurl()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIurl()\fR" 4
.IX Item "$wcent->url()"
\&\s-1URL\s0 in repository.
.ie n .IP "$wcent\->\fIrepos()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIrepos()\fR" 4
.IX Item "$wcent->repos()"
Canonical repository \s-1URL\s0.
.ie n .IP "$wcent\->\fIuuid()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIuuid()\fR" 4
.IX Item "$wcent->uuid()"
Repository uuid.
.ie n .IP "$wcent\->\fIkind()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIkind()\fR" 4
.IX Item "$wcent->kind()"
The kind of node. One of the following constants:
\&\f(CW$SVN::Node::none\fR, \f(CW$SVN::Node::file\fR,
\&\f(CW$SVN::Node::dir\fR, \f(CW$SVN::Node::unknown\fR.
.ie n .IP "$wcent\->\fIschedule()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIschedule()\fR" 4
.IX Item "$wcent->schedule()"
Scheduling. One of the SVN::Wc::Schedule::* constants.
.ie n .IP "$wcent\->\fIcopied()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIcopied()\fR" 4
.IX Item "$wcent->copied()"
In a copied state.
.ie n .IP "$wcent\->\fIdeleted()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIdeleted()\fR" 4
.IX Item "$wcent->deleted()"
Deleted, but parent rev lags behind.
.ie n .IP "$wcent\->\fIabsent()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIabsent()\fR" 4
.IX Item "$wcent->absent()"
Absent \*(-- we know an entry of this name exists, but that's all (usually this
happens because of authz restrictions)
.ie n .IP "$wcent\->\fIincomplete()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIincomplete()\fR" 4
.IX Item "$wcent->incomplete()"
For \s-1THIS_DIR\s0 entry, implies whole entries file is incomplete.
.ie n .IP "$wcent\->\fIcopyfrom_url()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIcopyfrom_url()\fR" 4
.IX Item "$wcent->copyfrom_url()"
Copyfrom location.
.ie n .IP "$wcent\->\fIcopyfrom_rev()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIcopyfrom_rev()\fR" 4
.IX Item "$wcent->copyfrom_rev()"
Copyfrom revision.
.ie n .IP "$wcent\->\fIconflict_old()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIconflict_old()\fR" 4
.IX Item "$wcent->conflict_old()"
Old version of conflicted file.
.ie n .IP "$wcent\->\fIconflict_new()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIconflict_new()\fR" 4
.IX Item "$wcent->conflict_new()"
New version of conflicted file.
.ie n .IP "$wcent\->\fIconflict_wrk()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIconflict_wrk()\fR" 4
.IX Item "$wcent->conflict_wrk()"
Working version of conflicted file.
.ie n .IP "$wcent\->\fIprejfile()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIprejfile()\fR" 4
.IX Item "$wcent->prejfile()"
Property reject file.
.ie n .IP "$wcent\->\fItext_time()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fItext_time()\fR" 4
.IX Item "$wcent->text_time()"
Last up-to-date time for text contents (0 means no information available).
.ie n .IP "$wcent\->\fIprop_time()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIprop_time()\fR" 4
.IX Item "$wcent->prop_time()"
Last up-to-date time for properties (0 means no information available).
.ie n .IP "$wcent\->\fIchecksum()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIchecksum()\fR" 4
.IX Item "$wcent->checksum()"
Base\-64 encoded checksum for the untranslated text base file, can be undef for
backwards compatibility.
.ie n .IP "$wcent\->\fIcmt_rev()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIcmt_rev()\fR" 4
.IX Item "$wcent->cmt_rev()"
Last revision this was changed.
.ie n .IP "$wcent\->\fIcmt_date()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIcmt_date()\fR" 4
.IX Item "$wcent->cmt_date()"
Last date this was changed.
.ie n .IP "$wcent\->\fIcmt_author()\fR" 4
.el .IP "\f(CW$wcent\fR\->\fIcmt_author()\fR" 4
.IX Item "$wcent->cmt_author()"
Last commit author of this item.
.SH "CONSTANTS"
.IX Header "CONSTANTS"
.SS "SVN::Wc::Notify::Action"
.IX Subsection "SVN::Wc::Notify::Action"
.ie n .IP "$SVN::Wc::Notify::Action::add" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::add\fR" 4
.IX Item "$SVN::Wc::Notify::Action::add"
Adding a path to revision control.
.ie n .IP "$SVN::Wc::Notify::Action::copy" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::copy\fR" 4
.IX Item "$SVN::Wc::Notify::Action::copy"
Copying a versioned path.
.ie n .IP "$SVN::Wc::Notify::Action::delete" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::delete\fR" 4
.IX Item "$SVN::Wc::Notify::Action::delete"
Deleting a versioned path.
.ie n .IP "$SVN::Wc::Notify::Action::restore" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::restore\fR" 4
.IX Item "$SVN::Wc::Notify::Action::restore"
Restoring a missing path from the pristine text-base.
.ie n .IP "$SVN::Wc::Notify::Action::revert" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::revert\fR" 4
.IX Item "$SVN::Wc::Notify::Action::revert"
Reverting a modified path.
.ie n .IP "$SVN::Wc::Notify::Action::failed_revert" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::failed_revert\fR" 4
.IX Item "$SVN::Wc::Notify::Action::failed_revert"
A revert operation has failed.
.ie n .IP "$SVN::Wc::Notify::Action::resolved" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::resolved\fR" 4
.IX Item "$SVN::Wc::Notify::Action::resolved"
Resolving a conflict.
.ie n .IP "$SVN::Wc::Notify::Action::skip" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::skip\fR" 4
.IX Item "$SVN::Wc::Notify::Action::skip"
Skipping a path.
.ie n .IP "$SVN::Wc::Notify::Action::update_delete" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::update_delete\fR" 4
.IX Item "$SVN::Wc::Notify::Action::update_delete"
Got a delete in an update.
.ie n .IP "$SVN::Wc::Notify::Action::update_add" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::update_add\fR" 4
.IX Item "$SVN::Wc::Notify::Action::update_add"
Got an add in an update.
.ie n .IP "$SVN::Wc::Notify::Action::update_update" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::update_update\fR" 4
.IX Item "$SVN::Wc::Notify::Action::update_update"
Got any other action in an update.
.ie n .IP "$SVN::Wc::Notify::Action::update_completed" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::update_completed\fR" 4
.IX Item "$SVN::Wc::Notify::Action::update_completed"
The last notification in an update (including updates of externals).
.ie n .IP "$SVN::Wc::Notify::Action::update_external" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::update_external\fR" 4
.IX Item "$SVN::Wc::Notify::Action::update_external"
Updating an external module.
.ie n .IP "$SVN::Wc::Notify::Action::status_completed" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::status_completed\fR" 4
.IX Item "$SVN::Wc::Notify::Action::status_completed"
The last notification in a status (including status on externals).
.ie n .IP "$SVN::Wc::Notify::Action::status_external" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::status_external\fR" 4
.IX Item "$SVN::Wc::Notify::Action::status_external"
Running status on an external module.
.ie n .IP "$SVN::Wc::Notify::Action::commit_modified" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::commit_modified\fR" 4
.IX Item "$SVN::Wc::Notify::Action::commit_modified"
Committing a modification.
.ie n .IP "$SVN::Wc::Notify::Action::commit_added" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::commit_added\fR" 4
.IX Item "$SVN::Wc::Notify::Action::commit_added"
Committing an addition.
.ie n .IP "$SVN::Wc::Notify::Action::commit_deleted" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::commit_deleted\fR" 4
.IX Item "$SVN::Wc::Notify::Action::commit_deleted"
Committing a deletion.
.ie n .IP "$SVN::Wc::Notify::Action::commit_replaced" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::commit_replaced\fR" 4
.IX Item "$SVN::Wc::Notify::Action::commit_replaced"
Committing a replacement.
.ie n .IP "$SVN::Wc::Notify::Action::commit_postfix_txdelta" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::commit_postfix_txdelta\fR" 4
.IX Item "$SVN::Wc::Notify::Action::commit_postfix_txdelta"
Transmitting post-fix text-delta data for a file.
.ie n .IP "$SVN::Wc::Notify::Action::blame_revision" 4
.el .IP "\f(CW$SVN::Wc::Notify::Action::blame_revision\fR" 4
.IX Item "$SVN::Wc::Notify::Action::blame_revision"
Processed a single revision's blame.
.SS "SVN::Wc::Notify::State"
.IX Subsection "SVN::Wc::Notify::State"
.ie n .IP "$SVN::Wc::Notify::State::unknown" 4
.el .IP "\f(CW$SVN::Wc::Notify::State::unknown\fR" 4
.IX Item "$SVN::Wc::Notify::State::unknown"
Notifier doesn't know or isn't saying.
.ie n .IP "$SVN::Wc::Notify::State::unchanged" 4
.el .IP "\f(CW$SVN::Wc::Notify::State::unchanged\fR" 4
.IX Item "$SVN::Wc::Notify::State::unchanged"
The state did not change.
.ie n .IP "$SVN::Wc::Notify::State::missing" 4
.el .IP "\f(CW$SVN::Wc::Notify::State::missing\fR" 4
.IX Item "$SVN::Wc::Notify::State::missing"
The item wasn't present.
.ie n .IP "$SVN::Wc::Notify::State::obstructed" 4
.el .IP "\f(CW$SVN::Wc::Notify::State::obstructed\fR" 4
.IX Item "$SVN::Wc::Notify::State::obstructed"
An unversioned item obstructed work.
.ie n .IP "$SVN::Wc::Notify::State::changed" 4
.el .IP "\f(CW$SVN::Wc::Notify::State::changed\fR" 4
.IX Item "$SVN::Wc::Notify::State::changed"
Pristine state was modified.
.ie n .IP "$SVN::Wc::Notify::State::merged" 4
.el .IP "\f(CW$SVN::Wc::Notify::State::merged\fR" 4
.IX Item "$SVN::Wc::Notify::State::merged"
Modified state had mods merged in.
.ie n .IP "$SVN::Wc::Notify::State::conflicted" 4
.el .IP "\f(CW$SVN::Wc::Notify::State::conflicted\fR" 4
.IX Item "$SVN::Wc::Notify::State::conflicted"
Modified state got conflicting mods.
.SS "SVN::Wc::Schedule"
.IX Subsection "SVN::Wc::Schedule"
.ie n .IP "$SVN::Wc::Schedule::normal" 4
.el .IP "\f(CW$SVN::Wc::Schedule::normal\fR" 4
.IX Item "$SVN::Wc::Schedule::normal"
Nothing special here.
.ie n .IP "$SVN::Wc::Schedule::add" 4
.el .IP "\f(CW$SVN::Wc::Schedule::add\fR" 4
.IX Item "$SVN::Wc::Schedule::add"
Slated for addition.
.ie n .IP "$SVN::Wc::Schedule::delete" 4
.el .IP "\f(CW$SVN::Wc::Schedule::delete\fR" 4
.IX Item "$SVN::Wc::Schedule::delete"
Slated for deletion.
.ie n .IP "$SVN::Wc::Schedule::replace" 4
.el .IP "\f(CW$SVN::Wc::Schedule::replace\fR" 4
.IX Item "$SVN::Wc::Schedule::replace"
Slated for replacement (delete + add)
.SS "SVN::Wc::Status"
.IX Subsection "SVN::Wc::Status"
.ie n .IP "$SVN::Wc::Status::none" 4
.el .IP "\f(CW$SVN::Wc::Status::none\fR" 4
.IX Item "$SVN::Wc::Status::none"
Does not exist.
.ie n .IP "$SVN::Wc::Status::unversioned" 4
.el .IP "\f(CW$SVN::Wc::Status::unversioned\fR" 4
.IX Item "$SVN::Wc::Status::unversioned"
Is not a versioned node in this working copy.
.ie n .IP "$SVN::Wc::Status::normal" 4
.el .IP "\f(CW$SVN::Wc::Status::normal\fR" 4
.IX Item "$SVN::Wc::Status::normal"
Exists, but uninteresting.
.ie n .IP "$SVN::Wc::Status::added" 4
.el .IP "\f(CW$SVN::Wc::Status::added\fR" 4
.IX Item "$SVN::Wc::Status::added"
Is scheduled for addition.
.ie n .IP "$SVN::Wc::Status::missing" 4
.el .IP "\f(CW$SVN::Wc::Status::missing\fR" 4
.IX Item "$SVN::Wc::Status::missing"
Under version control but missing.
.ie n .IP "$SVN::Wc::Status::deleted" 4
.el .IP "\f(CW$SVN::Wc::Status::deleted\fR" 4
.IX Item "$SVN::Wc::Status::deleted"
Scheduled for deletion.
.ie n .IP "$SVN::Wc::Status::replaced" 4
.el .IP "\f(CW$SVN::Wc::Status::replaced\fR" 4
.IX Item "$SVN::Wc::Status::replaced"
Was deleted and then re-added.
.ie n .IP "$SVN::Wc::Status::modified" 4
.el .IP "\f(CW$SVN::Wc::Status::modified\fR" 4
.IX Item "$SVN::Wc::Status::modified"
Text or props have been modified.
.ie n .IP "$SVN::Wc::Status::merged" 4
.el .IP "\f(CW$SVN::Wc::Status::merged\fR" 4
.IX Item "$SVN::Wc::Status::merged"
Local mods received repos mods.
.ie n .IP "$SVN::Wc::Status::conflicted" 4
.el .IP "\f(CW$SVN::Wc::Status::conflicted\fR" 4
.IX Item "$SVN::Wc::Status::conflicted"
Local mods received conflicting mods.
.ie n .IP "$SVN::Wc::Status::ignored" 4
.el .IP "\f(CW$SVN::Wc::Status::ignored\fR" 4
.IX Item "$SVN::Wc::Status::ignored"
A node marked as ignored.
.ie n .IP "$SVN::Wc::Status::obstructed" 4
.el .IP "\f(CW$SVN::Wc::Status::obstructed\fR" 4
.IX Item "$SVN::Wc::Status::obstructed"
An unversioned resource is in the way of the versioned resource.
.ie n .IP "$SVN::Wc::Status::external" 4
.el .IP "\f(CW$SVN::Wc::Status::external\fR" 4
.IX Item "$SVN::Wc::Status::external"
An unversioned path populated by an svn:externals property.
.ie n .IP "$SVN::Wc::Status::incomplete" 4
.el .IP "\f(CW$SVN::Wc::Status::incomplete\fR" 4
.IX Item "$SVN::Wc::Status::incomplete"
A directory doesn't contain a complete entries list.

View file

@ -0,0 +1,10 @@
--- Makefile.in.orig 2009-02-16 14:10:48.000000000 -0200
+++ Makefile.in 2009-06-04 00:56:29.000000000 -0300
@@ -678,6 +678,7 @@
$(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
+ cd $(SWIG_PL_DIR)/native; sed -i 's|LD_RUN_PATH|DIE_RPATH_DIE|g' Makefile{,.{client,delta,fs,ra,repos,wc}}
swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
$(SWIG_PL_DIR)/native/Makefile

View file

@ -0,0 +1,22 @@
diff -urN subversion-1.6.9/subversion/bindings/swig/python/svn/core.py subversion-1.6.9-fixed/subversion/bindings/swig/python/svn/core.py
--- subversion-1.6.9/subversion/bindings/swig/python/svn/core.py 2009-02-13 11:22:26.000000000 -0500
+++ subversion-1.6.9-fixed/subversion/bindings/swig/python/svn/core.py 2010-02-08 07:46:29.000000000 -0500
@@ -19,6 +19,7 @@
from libsvn.core import *
import libsvn.core as _libsvncore
import atexit as _atexit
+import warnings
class SubversionException(Exception):
def __init__(self, message=None, apr_err=None, child=None,
@@ -44,7 +45,9 @@
Exception.__init__(self, *args)
self.apr_err = apr_err
- self.message = message
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore", DeprecationWarning)
+ self.message = message
self.child = child
self.file = file
self.line = line

11
extra/subversion/svn Normal file
View file

@ -0,0 +1,11 @@
service svn
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/svnserve
server_args = -i
log_on_failure += USERID
disable = yes
}

2370
extra/subversion/svnmerge.py Normal file

File diff suppressed because it is too large Load diff

42
extra/subversion/svnserve Executable file
View file

@ -0,0 +1,42 @@
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/svnserve
PID=`pidof -o %PPID /usr/bin/svnserve`
case "$1" in
start)
stat_busy "Starting svnserve"
if [ -z "$PID" ]; then
if [ -n "$SVNSERVE_USER" ]; then
su -s '/bin/sh' $SVNSERVE_USER -c "/usr/bin/svnserve -d $SVNSERVE_ARGS" &
else
/usr/bin/svnserve -d $SVNSERVE_ARGS &
fi
fi
if [ ! -z "$PID" -o $? -gt 0 ]; then
stat_fail
else
add_daemon svnserve
stat_done
fi
;;
stop)
stat_busy "Stopping svnserve"
[ ! -z "$PID" ] && kill $PID &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
rm_daemon svnserve
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac

View file

@ -0,0 +1,7 @@
#
# Parameters to be passed to svnserve
#
#SVNSERVE_ARGS="-r /path/to/some/repos"
SVNSERVE_ARGS=""
#SVNSERVE_USER="svn"