Provided by: libsvn-class-perl_0.17-1_all bug

NAME

       SVN::Class - manipulate Subversion workspaces with Perl objects

SYNOPSIS

        use SVN::Class;

        my $file = svn_file( 'path/to/file' );
        my $fh = $file->open('>>');
        print {$fh} "hello world\n";
        $fh->close;
        $file->add;
        if ($file->modified) {
           my $rev = $file->commit('the file changed');
           print "$file was committed with revision $rev\n";
        }
        else {
           croak "$file was not committed: " . $file->errstr;
        }

        my $dir = svn_dir( 'path/to/dir' );
        $dir->mkpath unless -d $dir;
        $dir->add;  # recurses by default
        $dir->commit('added directory') if $dir->modified;

DESCRIPTION

       SVN::Class extends Path::Class to allow for basic Subversion workspace management.
       SVN::Class::File and SVN::Class::Dir are subclasses of Path::Class::File::Stat and
       Path::Class::Dir respectively.

       SVN::Class does not use the SVN::Core Subversion SWIG bindings. Instead, the "svn" binary
       tool is used for all interactions, using IPC::Cmd. This design decision was made for
       maximum portability and to eliminate non-CPAN dependencies.

EXPORT

       SVN::Class exports two functions by default: svn_file() and svn_dir().  These work just
       like the dir() and file() functions in Path::Class.  If you do not want to export them,
       just invoke SVN::Class like:

        use SVN::Class ();

   svn_file( file )
       Works just like Path::Class::file().

   svn_dir( dir )
       Works just like Path::Class::dir().

METHODS

       SVN::Class inherits from Path::Class. Only new or overridden methods are documented here.

   svn
       Path to the svn binary. Defaults to "svn" and thus relies on environment's PATH to find
       and execute the correct command.

   stdout
       Get the stdout from the last svn_run().

   stderr
       Get the stderr from the last svn_run().

   error
       If the last svn_run() exited with non-zero, error() will return same as stderr(). If
       svn_run() was successful, returns the empty string.

   error_code
       Returns the last exit value of svn_run().

   verbose
       Get/set a true value to enable IPC output in svn_run().

   debug
       Get/set a true value to see debugging output printed on stderr.

   svn_run( cmd, opts, file )
       Execute cmd given opts and file as arguments. This is a wrapper around the IPC::Run run()
       function.

       opts should be an array ref of options to pass to cmd.

       file defaults to $self->stringify().

       Returns the success code from IPC::Run run(). Sets the stdout, stderr, err, errstr, and
       error_code values in the SVN::Class object.

       This method is used internally by all the Subversion commands.

       NOTE: In order to standardize the output of Subversion commands into a locale that is
       easily parse-able by other methods that call svn_run() internally, all commands are run
       with "LC_ALL=C" to make sure output is ASCII only.

   log
       Returns svn log of the file or 0 on error. The log is returned as an arrayref (same as
       accessing stdout()).

   add
       Schedule the object for addition to the repository.

   delete
       Schedule the object for removal from the repository.

   update
       Get the latest version of the object from the repository.

   up
       Alias for update().

   revert
       Undo the last Subversion action on the object.

   commit( message )
       Commit the object to the repository with the log message.

       Returns the revision number of the commit on success, 0 on failure.

   status
       Returns the workspace status of the object.

   modified
       Returns true if the status() of the object is "Add" or "Modified".

   conflicted
       Returns true if the status() of the object is "Conflicted".

   diff
       Diff the workspace version of the object against either the repository or the current
       working baseline version.

   blame
       Annotated accounting of who modified what lines of the object.

   info
       Returns SVN::Class::Info instance with information about the current object or 0 on
       failure.

   dump
       Returns a Data::Dump serialization of the object. Useful for debugging.

   errstr
       Returns the contents of error() as a newline-joined string.

   outstr
       Returns the contents of stdout() as a newline-joined string.

AUTHOR

       Peter Karman, "<karman at cpan.org>"

BUGS

       Please report any bugs or feature requests to "bug-svn-class at rt.cpan.org", or through
       the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SVN-Class
       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SVN-Class>.  I will be notified, and then
       you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

       You can find documentation for this module with the perldoc command.

           perldoc SVN::Class

       You can also look for information at:

       •   AnnoCPAN: Annotated CPAN documentation

           http://annocpan.org/dist/SVN-Class <http://annocpan.org/dist/SVN-Class>

       •   CPAN Ratings

           http://cpanratings.perl.org/d/SVN-Class <http://cpanratings.perl.org/d/SVN-Class>

       •   RT: CPAN's request tracker

           http://rt.cpan.org/NoAuth/Bugs.html?Dist=SVN-Class
           <http://rt.cpan.org/NoAuth/Bugs.html?Dist=SVN-Class>

       •   Search CPAN

           http://search.cpan.org/dist/SVN-Class <http://search.cpan.org/dist/SVN-Class>

ACKNOWLEDGEMENTS

       I looked at SVN::Agent before starting this project. It has a different API, more like
       SVN::Client in the SVN::Core, but I cribbed some of the ideas.

       The Minnesota Supercomputing Institute "http://www.msi.umn.edu/" sponsored the development
       of this software.

COPYRIGHT

       Copyright 2007 by the Regents of the University of Minnesota.

       This program is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

SEE ALSO

       Path::Class, Class::Accessor::Fast, SVN::Agent, IPC::Cmd