Alien-SVN

 view release on metacpan or  search on metacpan

src/subversion/CHANGES  view on Meta::CPAN

  - General:
    * improve consistency checks of DAV inherited property requests (r1498000)
    * fix ocassional failure in autoprop_tests.py (r1567752)
    * avoid duplicate sqlite analyze information rows (r1571214)
    * add Mavericks to our sysinfo output (r1573088)
    * bump copyright years to 2014 (r1555403)
    * unbreak test suite when running as root (r1583580)
    * resolve buffer overflow in testcode (r1481782)
    * fix libmagic detection with custom LDFLAGS (r1577200)
    * fix an out of scope variable use in merge (r1587946)
    * javahl: fix crash from resolve callback throwing an exception (r1586439)
    * ruby: fix two memory lifetime bugs (r1586052, r1586467)
    * fix a missing null byte when handling old pre-1.4 deltas (r1587968)
    * fix building with APR 0.9.x (r1585499)
    * make svn_ra_get_locks() and svn_ra_get_lock() report not locked nodes
      with a NULL svn_lock_t *, as documented (r1578273, r1578311, r1578326)
    * fix tests for compiler flags (r1573106)


Version 1.8.8
(19 Feb 2014, from /branches/1.8.x)

src/subversion/CHANGES  view on Meta::CPAN

      2.4.5 and 2.4.6 (r1545835)
    * mod_dav_svn: detect out of dateness correctly during commit (issue #4480)

 Developer-visible changes:
  - General:
    * fix libmagic detection with custom LDFLAGS (r1577200)
    * fix a missing null byte when handling old pre-1.4 deltas (r1587968)
    * support building with Serf 1.3.x (r1517123, r1535139)

  - Bindings:
    * javahl: fix crash from resolve callback throwing an exception (r1586439)


Version 1.7.16
(26 Feb 2014, from /branches/1.7.x)
http://svn.apache.org/repos/asf/subversion/tags/1.7.16

 User-visible changes:
  - Client-side bugfixes:
    * copy: fix some scenarios that broke the working copy (r1560690)
    * diff: fix regressions due to fixes in 1.7.14 (issue #4460)

src/subversion/CHANGES  view on Meta::CPAN

    * use installed GSSAPI lib for Kerberos in ra_serf (r877381)
    * allow 'svn info' to run on an excluded item (issue #3792)
    * improve 'log -g' output with reverse merges (issue #3176)
    * don't print error message if stdout is a pipe and is closed (issue #3014)
    * removed special copy-handling during updates added in 1.5.0 (issue #3711)
    * fix warning about copies committed with non-infinity depth (issue #3752)
    * can now commit multiple wc paths lacking a common parent (issue #2381)
    * 'svn export --depth $WC' now works correctly (issue #3800)
    * added support for case-only renames on Windows (issue #3702)
    * 'svn delete --force' removes tree conflicts (issue #3805)
    * don't throw an error when skipping tree conflicts in update (issue #3329)
    * don't break commits of wc->wc copies with file externals (issue #3589)
    * allow 'svn info' to work on symlinks to working copies (issue #2305)
    * allow 'svn st --show-updates' to work across symlinks (issue #3117)
    * 'svn revert' shouldn't loop on symlinks (issue #3972)
    * fixed: wc-to-wc copy of a switch source (issue #1802)
    * fixed: 'svn st' reports symlinks as obstructed items (issue #2284)
    * fixed: 'cd e:\; svn up e:\' fails (issue #2556)
    * fixed: svn aborts on commiting from root dir on windows (issue #3346)
    * fixed: removing a dir scheduled for deletion corrupts wc (issue #2741)
    * fixed: 'svn cleanup' fails on obstructed paths (issue #2867)

src/subversion/CHANGES  view on Meta::CPAN

    * fixed: 'svn merge' of propchanges into deleted file (issue #2132)
    * fixed: 'svn merge' on implicit target with space (r13010)
    * fixed: 'svn merge/diff URL URL' can cause httpd timeout (issue #2048)
    * fixed: 'svn switch/update' failure might corrupt wc (issue #1825)
    * fixed: 'svn up' should rm before add, helps case-insensitivity (r12616)
    * fixed: 'svn up -rX' causes file to be unrestorable (issue #2250)
    * fixed: 'svn copy wc wc' should keep .svn/ hidden (issue #1739)
    * fixed: 'svn copy wc wc' of deleted=true doesn't delete (issue #2101)
    * fixed: 'svn copy' shouldn't copy into schedule-delete area (issue #2020)
    * fixed: 'svn copy dir dir' infinite recursion (issue #2224)
    * fixed: 'svn log' throws error on unversioned target (issue #1551)
    * fixed: 'svn log' in r0 working copy shows r1 log msg (issue #1950) 
    * fixed: 'svn export' bugs on deleted dirs or nonexistents (#2226, r13226) 
    * fixed: 'svn export' on single file from working copy (issue #1708)
    * fixed: 'svn import' creating an empty revision (r14293)
    * fixed: 'svn commit' ignores --encoding when editing externally (#2244)
    * fixed: 'svn commit' log message lost if utf8-conversion failure (r13230)
    * fixed: 'svn diff' output encoding bug (r11461)
    * fixed: 'svn diff' showing prop-diffs on repos root dir (r13381-2)
    * fixed: 'svn diff' label reversal (issue #2033)
    * fixed: 'svn propget' prints extra newline in --strict mode (r14505)

src/subversion/CHANGES  view on Meta::CPAN

      - new 'ssl-trust-default-ca' option to trust 'default' openssl CAs
 * 'svn log' no longer dies on unversioned args (r6989, #777)
 * local mods now obstruct 'svn up' deletions (r7050, #1196)
 * 'svnserve' now notices (unauthenticated) --username arg (r7060)
 * no more 'svnadmin createtxn' subcommand. (r7062)
 * 'svn ls -v' shows years when appropriate
 * document some new things in Book (r7014), plus minor technical fixes
 * website changes:  new sidebar, new 'svn links' page, new tigris.org!!
 * other bugfixes:  hooks use proper stdout handles on win32 (r7001),
   prevent copies of copies in wc (r7077, #1259), display failed
   revprop change over ra_dav (r7081, #1520), 'svn st -u' throws RA
   error properly (r7094, #1506)

 Developer-visible changes:
 * ra_dav now requires neon-0.24.X
 * many gen_make.py/gen-base.py improvements, especially for win32 builds
 * many improvements to swig/perl bindings
 * improvements to contrib/:  psvn.el, and new svn-push program.
 * more cvs2svn bugfixes:  issue #1504, #1421, #1514, and new --username arg.
 * python testsuite only raises exceptions, never status codes. (#1192)
 * various libsvn_fs re-org (prepwork) for issue #1499.

src/subversion/CHANGES  view on Meta::CPAN

 * commands can be safely interrupted (Ctrl-C)
 * --encoding global default in ~/.subversion/config
 * new option --editor-cmd
 * begin multi-release transition to escape binary properties over DAV
 * misc performance improvements

 Developer-visible changes:
 * RA vtable functions take pool argument
 * svn-config --includes path fixed
 * uuid at creation now complete
 * start having test failures throw exceptions rather than return errors
 * test suite option --cleanup with --verbose being default mode
 * continued diff library development
 * minor revprop hook changes
 * bug fixes: no diff on binary files (#1019), consistent error messages
   (#1181), version numbers in hook scripts (#1182), win98 codepage (#1186)


Version 0.19.1 (released 12 Mar 2003, revision 5303, branches/release-0.19.1)

 User-visible changes:

src/subversion/build/libtool.m4  view on Meta::CPAN

	else
	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
	fi
	;;
      esac
      _LT_TAGVAR(link_all_deplibs, $1)=yes
      ;;

    sunos4*)
      if test sequent = "$host_vendor"; then
	# Use $CC to link under sequent, because it throws in some extra .o
	# files that make .init and .fini sections work.
	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
      else
	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
      fi
      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
      _LT_TAGVAR(hardcode_direct, $1)=yes
      _LT_TAGVAR(hardcode_minus_L, $1)=yes
      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
      ;;

src/subversion/build/ltmain.sh  view on Meta::CPAN


      # While some portion of DIR does not yet exist...
      while test ! -d "$_G_directory_path"; do
        # ...make a list in topmost first order.  Use a colon delimited
	# list incase some portion of path contains whitespace.
        _G_dir_list=$_G_directory_path:$_G_dir_list

        # If the last portion added has no slash in it, the list is done
        case $_G_directory_path in */*) ;; *) break ;; esac

        # ...otherwise throw away the child directory and loop
        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
      done
      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`

      func_mkdir_p_IFS=$IFS; IFS=:
      for _G_dir in $_G_dir_list; do
	IFS=$func_mkdir_p_IFS
        # mkdir can fail with a 'File exist' error if two processes
        # try to create one of the directories concurrently.  Don't
        # stop in that case!

src/subversion/configure  view on Meta::CPAN

	else
	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
	fi
	;;
      esac
      link_all_deplibs=yes
      ;;

    sunos4*)
      if test sequent = "$host_vendor"; then
	# Use $CC to link under sequent, because it throws in some extra .o
	# files that make .init and .fini sections work.
	archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
      else
	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
      fi
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_direct=yes
      hardcode_minus_L=yes
      hardcode_shlibpath_var=no
      ;;

src/subversion/configure.ac  view on Meta::CPAN

        AC_MSG_ERROR([Can't have --disable-debug and --enable-maintainer-mode])
      fi
      enable_debugging=yes

      dnl Enable some extra warnings. Put these before the user's flags
      dnl so the user can specify flags that override these.
      if test "$GCC" = "yes"; then
        AC_MSG_NOTICE([maintainer-mode: adding GCC warning flags])

        dnl some additional flags that can be handy for an occasional review,
        dnl but throw too many warnings in svn code, of too little importance,
        dnl to keep these enabled. Remove the "dnl" to do a run with these
        dnl switches enabled.
        dnl ./configure CUSERFLAGS="-Wswitch-enum -Wswitch-default"

        dnl Add each of the following flags only if the C compiler accepts it.
        CFLAGS_KEEP="$CFLAGS"
        CFLAGS=""

        SVN_CFLAGS_ADD_IFELSE([-Werror=implicit-function-declaration])
        SVN_CFLAGS_ADD_IFELSE([-Werror=declaration-after-statement])

src/subversion/subversion/bindings/ctypes-python/csvn/core/functions.py.in  view on Meta::CPAN

    return SVN_ERR(result)

# As of ctypes 1.0, ctypes does not support custom error-checking
# functions on callbacks, nor does it support custom datatypes on
# callbacks, so ctypesgen sets the return values for callbacks
# to c_void_p.
#
# Callback functions, therefore, won't have their errors checked
# automatically. Users who call these functions should wrap
# their function call using SVN_ERR so as to ensure that any
# exceptions are thrown appropriately.


###########################

src/subversion/subversion/bindings/ctypes-python/csvn/ext/callback_receiver.py  view on Meta::CPAN

    def run(self, *args, **kwargs):
        try:
            try:
                self.collect(*self.args, **self.kwargs)
            except:

                # Looks like the child thread bombed out!
                # Find out what happened.
                tb = traceback.format_exception(*sys.exc_info())
                self.exception = CollectionError(
                    "Exception thrown by collect method\n"
                    "%s" % "".join(tb))

        finally:

            # Wake up the parent, and tell 'im we're all
            # done our work
            self.done = True
            try:
                self.lock.acquire()
                self.result_produced.notify()

src/subversion/subversion/bindings/ctypes-python/csvn/repos.py  view on Meta::CPAN

             session's root.

             If LIMIT is non-zero, only the first LIMIT logs are returned.

             If DISCOVER_CHANGED_PATHS is True, then changed_paths will contain
             a list of paths affected by this revision.

             If STOP_ON_COPY is True, then this function will not cross
             copies while traversing history.

             If START_REV or END_REV is a non-existent revision, we throw
             a SVN_ERR_FS_NO_SUCH_REVISION SubversionException, without
             returning any logs.

        """

        paths = _types.Array(c_char_p, paths is None and [""] or paths)
        return iter(_LogMessageReceiver(self, start_rev, end_rev, paths,
                                        limit, discover_changed_paths, stop_on_copy))


src/subversion/subversion/bindings/ctypes-python/csvn/txn.py  view on Meta::CPAN

                op.local_path = local_path
                op.copyfrom_path = copyfrom_path
                op.copyfrom_rev = copyfrom_rev
                op.kind = kind
                return op
            elif (action == "DELETE" and op.action == "OPEN" and
                  kind == svn_node_dir):
                op.action = action
                return op
            else:
                # throw error
                pass
        else:
            self.ops[path] = _txn_operation(path, action, kind,
                                            copyfrom_path = copyfrom_path,
                                            copyfrom_rev = copyfrom_rev,
                                            local_path = local_path)
            return self.ops[path]

    def replay(self, editor, session, base_rev, baton):
        subpool = Pool()

src/subversion/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp  view on Meta::CPAN

namespace version_1_9_dev {

class error : public std::exception
{
public:
  typedef compat::shared_ptr<error> shared_ptr;

  error(const char* description, int error_code);
  error(const char* description, int error_code, shared_ptr nested_error);

  error(const error& that) throw();
  error& operator=(const error& that) throw();
  virtual ~error() throw();

  /**
   * Returns the error code associated with the exception.
   */
  virtual int code() const throw() { return m_errno; }

  /**
   * Returns a shared pointer to the nested exception object, if any.
   */
  virtual shared_ptr nested() const throw() { return m_nested; }

  /// Returns the message associated with this exception object.
  virtual const char* what() const throw();

  /**
   * Error message description.
   *
   * The first element of this pair is the error code, the second the
   * associated error message. If the error code is 0, the message
   * describes the location in the source code where the error was
   * generated from.
   */
  typedef std::pair<int, std::string> message;

src/subversion/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp  view on Meta::CPAN

   * Traceback is only available if the Subversion libraries were
   * compiled with tracing enabled.
   */
  virtual message_list traced_messages() const
    {
      return compile_messages(true);
    }

public:
  /** Used internally by the implementation. */
  static void throw_svn_error(svn_error_t*);

protected:
  error(int error_code, detail::error_description* description) throw();

private:
  std::vector<message> compile_messages(bool show_traces) const;

  int m_errno;                /**< The (SVN or APR) error code. */
  shared_ptr m_nested;        /**< Optional pointer to nessted error. */
  /** Error description and trace location information. */
  detail::error_description* m_description;
};

class cancelled : public error
{
  friend void error::throw_svn_error(svn_error_t*);

protected:
  cancelled(int error_code, detail::error_description* description) throw()
    : error(error_code, description)
    {}
};

} // namespace version_1_9_dev
} // namespace cxxhl
} // namespace subversion

#endif  // SVN_CXXHL_EXCEPTION_HPP

src/subversion/subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp  view on Meta::CPAN

namespace cxxhl {
namespace version_1_9_dev {

class tristate
{
public:
  static const tristate TRUE;
  static const tristate FALSE;
  static const tristate UNKNOWN;

  tristate(const tristate& that) throw()
    : m_value(that.m_value)
    {}

  bool operator==(const tristate& that) const throw()
    { return m_value == that.m_value; }

  bool operator!=(const tristate& that) const throw()
    { return !(*this == that); }

  bool known() const throw()
    { return *this != UNKNOWN; }

private:
  explicit tristate(short int value) throw();
  short int m_value;
};

} // namespace version_1_9_dev
} // namespace cxxhl
} // namespace subversion

#endif  // SVN_CXXHL_TRISTATE_HPP

src/subversion/subversion/bindings/cxxhl/src/exception.cpp  view on Meta::CPAN

        std::memcpy(description->m_message, message, length);
      description->m_message[length] = 0;
      return description;
    }

  static error_description* create(const char* message)
    {
      return create(message, NULL, 0, false);
    }

  error_description* reference() throw()
    {
      if (this)
        svn_atomic_inc(&m_refcount);
      return this;
    }

  error_description* dereference() throw()
    {
      if (this && 0 == svn_atomic_dec(&m_refcount))
        {
          this->~error_description();
          ::operator delete(this, std::nothrow);
          return NULL;
        }
      return this;
    }

  const char* what() const throw() { return (m_empty ? NULL : m_message); }
  const char* file() const throw() { return m_loc_file; }
  long line() const throw() { return m_loc_line; }
  bool trace() const throw() { return m_trace; }

private:
  error_description(const char *loc_file, long loc_line,
                    bool trace_link, bool empty_message) throw()
    : m_loc_file(loc_file),
      m_loc_line(loc_line),
      m_trace(trace_link),
      m_empty(empty_message),
      m_refcount(0)
    {}

  ~error_description() throw() {}

  const char* m_loc_file;
  long m_loc_line;
  bool m_trace;
  bool m_empty;

  volatile svn_atomic_t m_refcount;
  char m_message[1];
};

src/subversion/subversion/bindings/cxxhl/src/exception.cpp  view on Meta::CPAN

    m_description(detail::error_description::create(description)->reference())
{}

error::error(const char* description, int error_code,
             error::shared_ptr nested_error)
  : m_errno(error_code),
    m_nested(nested_error),
    m_description(detail::error_description::create(description)->reference())
{}

error::error(const error& that) throw()
  : m_errno(that.m_errno),
    m_nested(that.m_nested),
    m_description(that.m_description->reference())
{}

error& error::operator=(const error& that) throw()
{
  if (this == &that)
    return *this;

  // This in-place destroy+copy implementation of the assignment
  // operator is safe because both the destructor and the copy
  // constructor do not throw exceptions.
  this->~error();
  return *new(this) error(that);
}

error::~error() throw()
{
  m_description->dereference();
}

const char* error::what() const throw()
{
  return m_description->what();
}

error::error(int error_code, detail::error_description* description) throw()
  : m_errno(error_code),
    m_description(description)
{}

void error::throw_svn_error(svn_error_t* err)
{
  const bool throw_cancelled = (err->apr_err == SVN_ERR_CANCELLED);
  detail::error_description* description = NULL;
  try
    {
      // Be very careful when creating the error descriptions, so that
      // the exception unwinder can free them if an allocation fails.
      // The private constructor does not increment the refcount
      // precisely for this reason.

      shared_ptr nested;
      shared_ptr* current = &nested;

src/subversion/subversion/bindings/cxxhl/src/exception.cpp  view on Meta::CPAN

          description = NULL;
          current = &(*current)->m_nested;
        }

      const int apr_err = err->apr_err;
      description = detail::error_description::create(
          err->message, err->file, err->line,
          svn_error__is_tracing_link(err));
      description->reference();
      svn_error_clear(err);
      if (throw_cancelled)
        {
          cancelled converted = cancelled(apr_err, description);
          description = NULL;
          converted.m_nested = nested;
          throw converted;
        }
      else
        {
          error converted = error(apr_err, description);
          description = NULL;
          converted.m_nested = nested;
          throw converted;
        }
    }
  catch (...)
    {
      description->dereference();
      throw;
    }
}


namespace {
void handle_one_error(error::message_list& ml, bool show_traces,
                      int error_code, detail::error_description* descr,
                      apr_pool_t* pool)
{
  if (show_traces && descr->file())

src/subversion/subversion/bindings/cxxhl/src/exception.cpp  view on Meta::CPAN

              empties.push_back(err->m_errno);
            }
          handle_one_error(ml, show_traces,
                           err->m_errno, err->m_description,
                           pool);
        }
    }
  catch (...)
    {
      apr_pool_destroy(pool);
      throw;
    }

  apr_pool_destroy(pool);
  return ml;
}

} // namespace version_1_9_dev
} // namespace cxxhl
} // namespace subversion

src/subversion/subversion/bindings/cxxhl/src/tristate.cpp  view on Meta::CPAN

#include "svncxxhl/tristate.hpp"

#include "svn_types.h"
#undef TRUE
#undef FALSE

namespace subversion {
namespace cxxhl {
namespace version_1_9_dev {

tristate::tristate(short value) throw()
    : m_value(value)
{}

const tristate tristate::TRUE = tristate(svn_tristate_true);
const tristate tristate::FALSE = tristate(svn_tristate_false);
const tristate tristate::UNKNOWN = tristate(svn_tristate_unknown);

} // namespace version_1_9_dev
} // namespace cxxhl
} // namespace subversion

src/subversion/subversion/bindings/cxxhl/tests/test_exception.cpp  view on Meta::CPAN

bool test_cancel()
{
  try
    {
      svn_error_t* err;
      err = svn_error_create(SVN_ERR_TEST_FAILED, NULL, "original message");
      err = svn_error_create(SVN_ERR_BASE, err, "wrapper message");
      err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
      err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
      err = svn_error_trace(err);
      svn::error::throw_svn_error(err);
    }
  catch (const svn::cancelled& err)
    {
      traceall("Caught: CANCEL", err);
      return true;
    }
  catch (const svn::error& err)
    {
      traceall("Caught: ERROR", err);
      return false;

src/subversion/subversion/bindings/cxxhl/tests/test_exception.cpp  view on Meta::CPAN

  try
    {
      svn_error_t* err;
      err = svn_error_create(SVN_ERR_TEST_FAILED, NULL, "original message");
      err = svn_error_create(SVN_ERR_BASE, err, "wrapper message");
      err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
      err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
      err = svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, err, NULL);
      err = svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, err, NULL);
      err = svn_error_trace(err);
      svn::error::throw_svn_error(err);
    }
  catch (const svn::cancelled& err)
    {
      traceall("Caught: CANCEL", err);
      return false;
    }
  catch (const svn::error& err)
    {
      traceall("Caught: ERROR", err);
      return true;

src/subversion/subversion/bindings/javahl/native/ClientContext.cpp  view on Meta::CPAN


  // Create an instance of the conflict descriptor.
  jobject jdesc = CreateJ::ConflictDescriptor(desc);
  if (JNIUtil::isJavaExceptionThrown())
    POP_AND_RETURN(SVN_NO_ERROR);

  // Invoke the Java conflict resolver callback method using the descriptor.
  jobject jresult = env->CallObjectMethod(jctx, mid, jdesc);
  if (JNIUtil::isJavaExceptionThrown())
    {
      // If an exception is thrown by our conflict resolver, remove it
      // from the JNI env, and convert it into a Subversion error.
      SVN::Pool tmpPool(scratch_pool);
      const char *msg = JNIUtil::thrownExceptionToCString(tmpPool);
      svn_error_t *err = svn_error_create(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE,
                                          NULL, msg);
      env->PopLocalFrame(NULL);
      return err;
    }

  *result = javaResultToC(jresult, result_pool);
  if (*result == NULL)
    {
      // Unable to convert the result into a C representation.

src/subversion/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp  view on Meta::CPAN


  // Actually tranform the DIFF parameter into a Java equivalent.
  jobject jDiffSummary = env->NewObject(clazz, ctor, jPath, jSummarizeKind,
                                        (jboolean) diff->prop_changed,
                                        jNodeKind);
  if (JNIUtil::isJavaExceptionThrown() || jDiffSummary == NULL)
    POP_AND_RETURN(SVN_NO_ERROR);

  // Invoke the Java DiffSummaryReceiver callback.
  env->CallVoidMethod(m_receiver, callback, jDiffSummary);
  // We return whether an exception was thrown or not.

  env->PopLocalFrame(NULL);
  return SVN_NO_ERROR;
}

src/subversion/subversion/bindings/javahl/native/JNIUtil.cpp  view on Meta::CPAN

{
  if (err == NULL)
    return NULL;
  std::string buffer;
  assembleErrorMessage(err, 0, APR_SUCCESS, buffer);
  jstring jmessage = makeJString(buffer.c_str());
  return jmessage;
}

void
JNIUtil::throwNativeException(const char *className, const char *msg,
                              const char *source, int aprErr)
{
  JNIEnv *env = getEnv();
  jclass clazz = env->FindClass(className);

  // Create a local frame for our references
  env->PushLocalFrame(LOCAL_FRAME_SIZE);
  if (JNIUtil::isJavaExceptionThrown())
    return;

  if (getLogLevel() >= exceptionLog)
    {
      JNICriticalSection cs(*g_logMutex);
      g_logStream << "Subversion JavaHL exception thrown, message:<";
      g_logStream << msg << ">";
      if (source)
        g_logStream << " source:<" << source << ">";
      if (aprErr != -1)
        g_logStream << " apr-err:<" << aprErr << ">";
      g_logStream << std::endl;
    }
  if (isJavaExceptionThrown())
    POP_AND_RETURN_NOTHING();

src/subversion/subversion/bindings/javahl/native/JNIUtil.cpp  view on Meta::CPAN


  jmethodID mid = env->GetMethodID(clazz, "<init>",
                                   "(Ljava/lang/String;Ljava/lang/String;I)V");
  if (isJavaExceptionThrown())
    POP_AND_RETURN_NOTHING();
  jobject nativeException = env->NewObject(clazz, mid, jmessage, jsource,
                                           static_cast<jint>(aprErr));
  if (isJavaExceptionThrown())
    POP_AND_RETURN_NOTHING();

  env->Throw(static_cast<jthrowable>(env->PopLocalFrame(nativeException)));
}

void
JNIUtil::putErrorsInTrace(svn_error_t *err,
                          std::vector<jobject> &stackTrace)
{
  if (!err)
    return;

  JNIEnv *env = getEnv();

src/subversion/subversion/bindings/javahl/native/JNIUtil.cpp  view on Meta::CPAN

    {
      std::ostringstream buf;
      buf << err->file;
      if (err->line > 0)
        buf << ':' << err->line;
      source = buf.str().c_str();
    }
#endif
#endif

  // Much of the following is stolen from throwNativeException().  As much as
  // we'd like to call that function, we need to do some manual stack
  // unrolling, so it isn't feasible.

  JNIEnv *env = getEnv();

  // Create a local frame for our references
  env->PushLocalFrame(LOCAL_FRAME_SIZE);
  if (JNIUtil::isJavaExceptionThrown())
    return;

  jclass clazz = env->FindClass(JAVA_PACKAGE "/ClientException");
  if (isJavaExceptionThrown())
    POP_AND_RETURN_NOTHING();

  if (getLogLevel() >= exceptionLog)
    {
      JNICriticalSection cs(*g_logMutex);
      g_logStream << "Subversion JavaHL exception thrown, message:<";
      g_logStream << msg << ">";
      if (source)
        g_logStream << " source:<" << source << ">";
      if (err->apr_err != -1)
        g_logStream << " apr-err:<" << err->apr_err << ">";
      g_logStream << std::endl;
    }
  if (isJavaExceptionThrown())
    POP_AND_RETURN_NOTHING();

src/subversion/subversion/bindings/javahl/native/JNIUtil.cpp  view on Meta::CPAN

      mid_sst = env->GetMethodID(clazz, "setStackTrace",
                                 "([Ljava/lang/StackTraceElement;)V");
      if (isJavaExceptionThrown())
        POP_AND_RETURN_NOTHING();
    }
  env->CallVoidMethod(nativeException, mid_sst, jStackTrace);
  if (isJavaExceptionThrown())
    POP_AND_RETURN_NOTHING();
#endif

  env->Throw(static_cast<jthrowable>(env->PopLocalFrame(nativeException)));
}

void JNIUtil::handleSVNError(svn_error_t *err)
{
  try {
    wrappedHandleSVNError(err);
  } catch (...) {
    svn_error_clear(err);
    throw;
  }
  svn_error_clear(err);
}

void JNIUtil::putFinalizedClient(SVNBase *object)
{
  enqueueForDeletion(object);
}

void JNIUtil::enqueueForDeletion(SVNBase *object)
{
  JNICriticalSection cs(*g_finalizedObjectsMutex);
  if (!isExceptionThrown())
    g_finalizedObjects.push_back(object);
}

/**
 * Handle an apr error (those are not expected) by throwing an error.
 * @param error the apr error number
 * @param op the apr function returning the error
 */
void JNIUtil::handleAPRError(int error, const char *op)
{
  char *buffer = getFormatBuffer();
  if (buffer == NULL)
    return;

  apr_snprintf(buffer, formatBufferSize,
               _("an error occurred in function %s with return value %d"),
               op, error);

  throwError(buffer);
}

/**
 * Return if an exception has been detected.
 * @return a exception has been detected
 */
bool JNIUtil::isExceptionThrown()
{
  // During init -> look in the global member.
  if (g_inInit)

src/subversion/subversion/bindings/javahl/native/JNIUtil.cpp  view on Meta::CPAN

  // During init -> look into the global variable.
  if (g_inInit)
    return g_initEnv;

  // Look in the thread local storage.
  JNIThreadData *data = JNIThreadData::getThreadData();
  return data->m_env;
}

/**
 * Check if a Java exception has been thrown.
 * @return is a Java exception has been thrown
 */
bool JNIUtil::isJavaExceptionThrown()
{
  JNIEnv *env = getEnv();
  if (env->ExceptionCheck())
    {
      // Retrieving the exception removes it so we rethrow it here.
      jthrowable exp = env->ExceptionOccurred();
      env->ExceptionDescribe();
      env->Throw(exp);
      env->DeleteLocalRef(exp);
      setExceptionThrown();
      return true;
    }
  return false;
}

const char *
JNIUtil::thrownExceptionToCString(SVN::Pool &in_pool)
{
  const char *msg = NULL;
  JNIEnv *env = getEnv();
  apr_pool_t *pool = in_pool.getPool();
  if (env->ExceptionCheck())
    {
      jthrowable t = env->ExceptionOccurred();
      jclass cls = env->GetObjectClass(t);

      jstring jclass_name;
      {
        jmethodID mid = env->GetMethodID(cls, "getClass", "()Ljava/lang/Class;");
        jobject clsobj = env->CallObjectMethod(t, mid);
        jclass basecls = env->GetObjectClass(clsobj);
        mid = env->GetMethodID(basecls, "getName", "()Ljava/lang/String;");
        jclass_name = (jstring) env->CallObjectMethod(clsobj, mid);
      }

src/subversion/subversion/bindings/javahl/native/JNIUtil.cpp  view on Meta::CPAN

    assembleErrorMessage(err->child, depth + 1, err->apr_err, buffer);

}

/**
 * Throw a Java NullPointerException.  Used when input parameters
 * which should not be null are that.
 *
 * @param message   the name of the parameter that is null
 */
void JNIUtil::throwNullPointerException(const char *message)
{
  if (getLogLevel() >= errorLog)
    logMessage("NullPointerException thrown");

  JNIEnv *env = getEnv();
  jclass clazz = env->FindClass("java/lang/NullPointerException");
  if (isJavaExceptionThrown())
    return;

  env->ThrowNew(clazz, message);
  setExceptionThrown();
  env->DeleteLocalRef(clazz);
}

src/subversion/subversion/bindings/javahl/native/JNIUtil.h  view on Meta::CPAN

{
 public:
  static svn_error_t *preprocessPath(const char *&path, apr_pool_t *pool);

  /**
   * Throw the Java NativeException instance named by
   * exceptionClassName.  A NativeException sub-class must supply a
   * 3-arg constructor identical to that of NativeException.  @a
   * source is any file name and line number information.
   */
  static void throwNativeException(const char *exceptionClassName,
                                   const char *msg,
                                   const char *source = NULL,
                                   int aprErr = -1);

  static void throwNullPointerException(const char *message);
  static jbyteArray makeJByteArray(const void *data, int length);
  static jbyteArray makeJByteArray(const svn_string_t *str);
  static jobject createDate(apr_time_t time);
  static void logMessage(const char *message);
  static int getLogLevel();
  static char *getFormatBuffer();
  static void initLogFile(int level, jstring path);
  static jstring makeJString(const char *txt);
  static bool isJavaExceptionThrown();
  static JNIEnv *getEnv();

src/subversion/subversion/bindings/javahl/native/JNIUtil.h  view on Meta::CPAN

   */
  static void enqueueForDeletion(SVNBase *object);

  /**
   * @deprecated Use the more appropriately named
   * enqueueForDeletion() instead.
   */
  static void putFinalizedClient(SVNBase *cl);

  /**
   * Convert any exception that may have been thrown into a textual
   * representation.  Return @c NULL if no exception has
   * occurred. Useful for converting Java @c Exceptions into @c
   * svn_error_t's.
   */
  static const char *thrownExceptionToCString(SVN::Pool &in_pool);

  /**
   * Throw a Java exception corresponding to err, and run
   * svn_error_clear() on err.
   */
  static void handleSVNError(svn_error_t *err);

  static jstring makeSVNErrorMessage(svn_error_t *err);

  /**
   * Create and throw a java.lang.Throwable instance.
   *
   * @param name The class name (in path form, with slashes in lieu
   * of dots) of the Throwable to create and raise.
   * @param message The message text of the Throwable.
   */
  static void raiseThrowable(const char *name, const char *message);

  /**
   * Creates and throws a JNIError.
   *
   * @param message The message text of the JNIError.
   */
  static void throwError(const char *message)
    {
      raiseThrowable(JAVA_PACKAGE"/JNIError", message);
    }

  static apr_pool_t *getPool();
  static bool JNIGlobalInit(JNIEnv *env);
  static bool JNIInit(JNIEnv *env);
  static bool initializeJNIRuntime();
  enum { formatBufferSize = 2048 };
  enum { noLog, errorLog, exceptionLog, entryLog } LogLevel;

 private:
  static void wrappedHandleSVNError(svn_error_t *err);
  static void assembleErrorMessage(svn_error_t *err, int depth,
                                   apr_status_t parent_apr_err,
                                   std::string &buffer);
  static void putErrorsInTrace(svn_error_t *err,
                               std::vector<jobject> &stackTrace);
  /**
   * Set the appropriate global or thread-local flag that an exception
   * has been thrown to @a flag.
   */
  static void setExceptionThrown(bool flag = true);

  /**
   * The log level of this module.
   */
  static int g_logLevel;

  /**
   * Global master pool.  All other pool are subpools of this pool.

src/subversion/subversion/bindings/javahl/native/JNIUtil.h  view on Meta::CPAN

  /**
   * The stream to write log messages to.
   */
  static std::ofstream g_logStream;
};

/**
 * A statement macro used for checking NULL pointers, in the style of
 * SVN_ERR().
 *
 * Evaluate @a expr.  If it equals NULL, throw an NullPointerException with
 * the value @a str, and return the @a ret_val.  Otherwise, continue.
 *
 * Note that if the enclosing function returns <tt>void</tt>, @a ret_val may
 * be blank.
 */

#define SVN_JNI_NULL_PTR_EX(expr, str, ret_val) \
  if ((expr) == NULL) {                         \
    JNIUtil::throwNullPointerException(str);    \
    return ret_val;                             \
  }

/**
 * A statement macro used for checking for errors, in the style of
 * SVN_ERR().
 *
 * Evalute @a expr.  If it yields an error, handle the JNI error, and
 * return @a ret_val.  Otherwise, continue.
 *

src/subversion/subversion/bindings/javahl/native/JNIUtil.h  view on Meta::CPAN



/**
 * A useful macro.
 */
#define POP_AND_RETURN_NULL             POP_AND_RETURN(NULL)

#define CPPADDR_NULL_PTR(expr, ret_val)                 \
  do {                                                  \
    if ((expr) == NULL) {                               \
      JNIUtil::throwError(_("bad C++ this"));           \
      return ret_val;                                   \
    }                                                   \
  } while (0)

#endif  // JNIUTIL_H

src/subversion/subversion/bindings/javahl/native/ProplistCallback.cpp  view on Meta::CPAN

  jstring jpath = JNIUtil::makeJString(path);
  if (JNIUtil::isJavaExceptionThrown())
    POP_AND_RETURN(SVN_NO_ERROR);

  jobject jmap = CreateJ::PropertyMap(prop_hash);
  if (JNIUtil::isJavaExceptionThrown())
    POP_AND_RETURN(SVN_NO_ERROR);

  // call the Java method
  env->CallVoidMethod(m_callback, mid, jpath, jmap);
  // We return whether an exception was thrown or not.

  env->PopLocalFrame(NULL);

  return SVN_NO_ERROR;
}



/**
 * Callback called for a single path

src/subversion/subversion/bindings/javahl/native/ProplistCallback.cpp  view on Meta::CPAN

  jobject jmap = CreateJ::PropertyMap(prop_hash);
  if (JNIUtil::isJavaExceptionThrown())
    POP_AND_RETURN(SVN_NO_ERROR);

  jobject jiprops = CreateJ::InheritedProps(inherited_props);
  if (JNIUtil::isJavaExceptionThrown())
    POP_AND_RETURN(SVN_NO_ERROR);

  // call the Java method
  env->CallVoidMethod(m_callback, mid, jpath, jmap, jiprops);
  // We return whether an exception was thrown or not.

  env->PopLocalFrame(NULL);

  return SVN_NO_ERROR;
}

src/subversion/subversion/bindings/javahl/native/RevpropTable.cpp  view on Meta::CPAN


  std::map<std::string, std::string>::const_iterator it;
  for (it = m_revprops.begin(); it != m_revprops.end(); ++it)
    {
      const char *propname = apr_pstrdup(pool.getPool(), it->first.c_str());
      if (!svn_prop_name_is_valid(propname))
        {
          const char *msg = apr_psprintf(pool.getPool(),
                                         "Invalid property name: '%s'",
                                         propname);
          JNIUtil::throwNativeException(JAVA_PACKAGE "/ClientException", msg,
                                        NULL, SVN_ERR_CLIENT_PROPERTY_NAME);
          return NULL;
        }

      svn_string_t *propval = svn_string_create(it->second.c_str(),
                                                pool.getPool());

      apr_hash_set(revprop_table, propname, APR_HASH_KEY_STRING, propval);
    }

src/subversion/subversion/bindings/javahl/native/SVNClient.cpp  view on Meta::CPAN

void SVNClient::copy(CopySources &copySources, const char *destPath,
                     CommitMessage *message, bool copyAsChild,
                     bool makeParents, bool ignoreExternals,
                     RevpropTable &revprops, CommitCallback *callback)
{
    SVN::Pool subPool(pool);

    apr_array_header_t *srcs = copySources.array(subPool);
    if (srcs == NULL)
    {
        JNIUtil::throwNativeException(JAVA_PACKAGE "/ClientException",
                                      "Invalid copy sources");
        return;
    }
    SVN_JNI_NULL_PTR_EX(destPath, "destPath", );
    Path destinationPath(destPath, subPool);
    SVN_JNI_ERR(destinationPath.error_occurred(), );

    svn_client_ctx_t *ctx = context.getContext(message, subPool);
    if (ctx == NULL)
        return;

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

                      bool keepLogs, File &configPath,
                      const char *fstype)
{
  SVN::Pool requestPool;
  svn_repos_t *repos;
  apr_hash_t *config;
  apr_hash_t *fs_config = apr_hash_make(requestPool.getPool());

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  apr_hash_set(fs_config, SVN_FS_CONFIG_BDB_TXN_NOSYNC,
               APR_HASH_KEY_STRING,
               (disableFsyncCommits? "1" : "0"));

  apr_hash_set(fs_config, SVN_FS_CONFIG_BDB_LOG_AUTOREMOVE,
               APR_HASH_KEY_STRING,
               (keepLogs ? "0" : "1"));

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

{
  SVN::Pool requestPool;
  svn_repos_t *repos;
  svn_fs_t *fs;
  svn_revnum_t start = SVN_INVALID_REVNUM, end = SVN_INVALID_REVNUM;
  svn_revnum_t youngest, revision;
  SVN::Pool revisionPool;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), );
  fs = svn_repos_fs(repos);
  SVN_JNI_ERR(svn_fs_youngest_rev(&youngest, fs, requestPool.getPool()), );

  if (revStart.revision()->kind == svn_opt_revision_number)
    /* ### We only handle revision numbers right now, not dates. */

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

                    ReposNotifyCallback *notifyCallback)
{
  SVN::Pool requestPool;
  svn_repos_t *repos;
  svn_fs_t *fs;
  svn_revnum_t lower = SVN_INVALID_REVNUM, upper = SVN_INVALID_REVNUM;
  svn_revnum_t youngest;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), );
  fs = svn_repos_fs(repos);
  SVN_JNI_ERR(svn_fs_youngest_rev(&youngest, fs, requestPool.getPool()), );

  /* ### We only handle revision numbers right now, not dates. */
  if (revisionStart.revision()->kind == svn_opt_revision_number)

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

                                 checkCancel, this, requestPool.getPool()), );
}

void SVNRepos::hotcopy(File &path, File &targetPath,
                       bool cleanLogs, bool incremental)
{
  SVN::Pool requestPool;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  if (targetPath.isNull())
    {
      JNIUtil::throwNullPointerException("targetPath");
      return;
    }

  SVN_JNI_ERR(svn_repos_hotcopy2(path.getInternalStyle(requestPool),
                                 targetPath.getInternalStyle(requestPool),
                                 cleanLogs, incremental,
                                 checkCancel, this /* cancel callback/baton */,
                                 requestPool.getPool()),
             );
}

static void
list_dblogs(File &path, MessageReceiver &receiver, bool only_unused)
{
  SVN::Pool requestPool;
  apr_array_header_t *logfiles;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  SVN_JNI_ERR(svn_repos_db_logfiles(&logfiles,
                                    path.getInternalStyle(requestPool),
                                    only_unused, requestPool.getPool()), );

  /* Loop, printing log files.  We append the log paths to the
   * repository path, making sure to return everything to the native
   * style and encoding before printing. */

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

  svn_repos_t *repos;
  svn_revnum_t lower = SVN_INVALID_REVNUM, upper = SVN_INVALID_REVNUM;
  enum svn_repos_load_uuid uuid_action = svn_repos_load_uuid_default;
  if (ignoreUUID)
    uuid_action = svn_repos_load_uuid_ignore;
  else if (forceUUID)
    uuid_action = svn_repos_load_uuid_force;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  /* ### We only handle revision numbers right now, not dates. */
  if (revisionStart.revision()->kind == svn_opt_revision_number)
    lower = revisionStart.revision()->value.number;
  if (revisionEnd.revision()->kind == svn_opt_revision_number)
    upper = revisionEnd.revision()->value.number;
  if (upper < lower
      && lower != SVN_INVALID_REVNUM

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN


void SVNRepos::lstxns(File &path, MessageReceiver &messageReceiver)
{
  SVN::Pool requestPool;
  svn_repos_t *repos;
  svn_fs_t *fs;
  apr_array_header_t *txns;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), );
  fs = svn_repos_fs(repos);
  SVN_JNI_ERR(svn_fs_list_transactions(&txns, fs, requestPool.getPool()), );

  /* Loop, printing revisions. */
  for (int i = 0; i < txns->nelts; ++i)

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

}

jlong SVNRepos::recover(File &path, ReposNotifyCallback *notifyCallback)
{
  SVN::Pool requestPool;
  svn_revnum_t youngest_rev;
  svn_repos_t *repos;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return -1;
    }

  SVN_JNI_ERR(svn_repos_recover4(path.getInternalStyle(requestPool), FALSE,
                                 notifyCallback != NULL
                                    ? ReposNotifyCallback::notify
                                    : NULL,
                                 notifyCallback,
                                 checkCancel, this, requestPool.getPool()),
              -1);

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

  SVN::Pool requestPool;
  svn_repos_t *repos;
  svn_fs_t *fs;
  svn_fs_txn_t *txn;
  const apr_array_header_t *args;
  int i;
  SVN::Pool transactionPool;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), );
  fs = svn_repos_fs(repos);

  args = transactions.array(requestPool);
  /* All the rest of the arguments are transaction names. */
  for (i = 0; i < args->nelts; ++i)

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

  SVN_JNI_NULL_PTR_EX(propName, "propName", );
  SVN_JNI_NULL_PTR_EX(propValue, "propValue", );
  if (revision.revision()->kind != svn_opt_revision_number)
    {
      SVN_JNI_ERR(svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
                                    _("Missing revision")), );
    }

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  /* Open the filesystem. */
  svn_repos_t *repos;
  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), );

  /* If we are bypassing the hooks system, we just hit the filesystem
   * directly. */

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

SVNRepos::verify(File &path, Revision &revisionStart, Revision &revisionEnd,
                 ReposNotifyCallback *notifyCallback)
{
  SVN::Pool requestPool;
  svn_repos_t *repos;
  svn_revnum_t lower = SVN_INVALID_REVNUM, upper = SVN_INVALID_REVNUM;
  svn_revnum_t youngest;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  /* This whole process is basically just a dump of the repository
   * with no interest in the output. */
  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), );
  SVN_JNI_ERR(svn_fs_youngest_rev(&youngest, svn_repos_fs(repos),
                                  requestPool.getPool()), );

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

                                   requestPool.getPool()), );
}

void SVNRepos::pack(File &path, ReposNotifyCallback *notifyCallback)
{
  SVN::Pool requestPool;
  svn_repos_t *repos;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), );

  SVN_JNI_ERR(svn_repos_fs_pack2(repos,
                                 notifyCallback != NULL
                                    ? ReposNotifyCallback::notify
                                    : NULL,

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN

                                 requestPool.getPool()),
              );
}

void SVNRepos::upgrade(File &path, ReposNotifyCallback *notifyCallback)
{
  SVN::Pool requestPool;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  SVN_JNI_ERR(svn_repos_upgrade2(path.getInternalStyle(requestPool), FALSE,
                                 notifyCallback != NULL
                                    ? ReposNotifyCallback::notify
                                    : NULL,
                                 notifyCallback,
                                 requestPool.getPool()),
              );

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN


jobject SVNRepos::lslocks(File &path, svn_depth_t depth)
{
  SVN::Pool requestPool;
  svn_repos_t *repos;
  apr_hash_t *locks;
  apr_hash_index_t *hi;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return NULL;
    }

  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), NULL);
  /* Fetch all locks on or below the root directory. */
  SVN_JNI_ERR(svn_repos_fs_get_locks2(&locks, repos, "/", depth, NULL, NULL,
                                      requestPool.getPool()),
              NULL);

src/subversion/subversion/bindings/javahl/native/SVNRepos.cpp  view on Meta::CPAN


void SVNRepos::rmlocks(File &path, StringArray &locks)
{
  SVN::Pool requestPool;
  svn_repos_t *repos;
  svn_fs_t *fs;
  svn_fs_access_t *access;

  if (path.isNull())
    {
      JNIUtil::throwNullPointerException("path");
      return;
    }

  SVN_JNI_ERR(svn_repos_open2(&repos, path.getInternalStyle(requestPool),
                              NULL, requestPool.getPool()), );
  fs = svn_repos_fs(repos);
  const char *username = NULL;

  /* svn_fs_unlock() demands that some username be associated with the
   * filesystem, so just use the UID of the person running 'svnadmin'.*/

src/subversion/subversion/bindings/javahl/native/StatusCallback.cpp  view on Meta::CPAN


  jstring jPath = JNIUtil::makeJString(local_abspath);
  if (JNIUtil::isJavaExceptionThrown())
    POP_AND_RETURN(SVN_NO_ERROR);

  jobject jStatus = CreateJ::Status(wc_ctx, status, pool);
  if (JNIUtil::isJavaExceptionThrown())
    POP_AND_RETURN(SVN_NO_ERROR);

  env->CallVoidMethod(m_callback, mid, jPath, jStatus);
  // We return here regardless of whether an exception is thrown or not,
  // so we do not need to explicitly check for one.

  env->PopLocalFrame(NULL);
  return SVN_NO_ERROR;
}

void
StatusCallback::setWcCtx(svn_wc_context_t *wc_ctx_in)
{
  this->wc_ctx = wc_ctx_in;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_dispose
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, dispose);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  cl->dispose(jthis);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_finalize
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, finalize);

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_SVNClient_getVersionExtended(
    JNIEnv *env, jobject jthis, jboolean verbose)
{
  JNIEntry(SVNClient, getVersionExtended);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  return cl->getVersionExtended(!!verbose);
}

JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_SVNClient_getAdminDirectoryName
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, getAdminDirectoryName);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  return cl->getAdminDirectoryName();
}

JNIEXPORT jboolean JNICALL
Java_org_apache_subversion_javahl_SVNClient_isAdminDirectory
(JNIEnv *env, jobject jthis, jstring jname)
{
  JNIEntry(SVNClient, isAdminDirectory);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return JNI_FALSE;
    }
  JNIStringHolder name(jname);
  if (JNIUtil::isExceptionThrown())
    return JNI_FALSE;

  return cl->isAdminDirectory(name);
}

JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_SVNClient_getLastPath
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, getLastPath);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  const char *ret = cl->getLastPath();
  return JNIUtil::makeJString(ret);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_list
(JNIEnv *env, jobject jthis, jstring jurl, jobject jrevision,
 jobject jpegRevision, jobject jdepth, jint jdirentFields,

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_username
(JNIEnv *env, jobject jthis, jstring jusername)
{
  JNIEntry(SVNClient, username);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  if (jusername == NULL)
    {
      JNIUtil::raiseThrowable("java/lang/IllegalArgumentException",
                              _("Provide a username (null is not supported)"));
      return;
    }
  JNIStringHolder username(jusername);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_password
(JNIEnv *env, jobject jthis, jstring jpassword)
{
  JNIEntry(SVNClient, password);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  if (jpassword == NULL)
    {
      JNIUtil::raiseThrowable("java/lang/IllegalArgumentException",
                              _("Provide a password (null is not supported)"));
      return;
    }
  JNIStringHolder password(jpassword);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_setPrompt
(JNIEnv *env, jobject jthis, jobject jprompter)
{
  JNIEntry(SVNClient, setPrompt);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  Prompter *prompter = Prompter::makeCPrompter(jprompter);
  if (JNIUtil::isExceptionThrown())
    return;

  cl->getClientContext().setPrompt(prompter);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_logMessages
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
 jobject jranges, jboolean jstopOnCopy, jboolean jdisoverPaths,
 jboolean jincludeMergedRevisions, jobject jrevProps, jlong jlimit,
 jobject jlogMessageCallback)
{
  JNIEntry(SVNClient, logMessages);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  Revision pegRevision(jpegRevision, true);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT jlong JNICALL
Java_org_apache_subversion_javahl_SVNClient_checkout
(JNIEnv *env, jobject jthis, jstring jmoduleName, jstring jdestPath,
 jobject jrevision, jobject jpegRevision, jobject jdepth,
 jboolean jignoreExternals, jboolean jallowUnverObstructions)
{
  JNIEntry(SVNClient, checkout);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return -1;
    }
  Revision revision(jrevision, true);
  if (JNIUtil::isExceptionThrown())
    return -1;

  Revision pegRevision(jpegRevision, true);
  if (JNIUtil::isExceptionThrown())
    return -1;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_remove
(JNIEnv *env, jobject jthis, jobject jtargets, jboolean jforce,
 jboolean keepLocal, jobject jrevpropTable, jobject jmessage,
 jobject jcallback)
{
  JNIEntry(SVNClient, remove);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;

  CommitMessage message(jmessage);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_revert
(JNIEnv *env, jobject jthis, jstring jpath, jobject jdepth,
 jobject jchangelists)
{
  JNIEntry(SVNClient, revert);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  StringArray changelists(jchangelists);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_add
(JNIEnv *env, jobject jthis, jstring jpath, jobject jdepth,
 jboolean jforce, jboolean jnoIgnore, jboolean jnoAutoProps,
 jboolean jaddParents)
{
  JNIEntry(SVNClient, add);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  cl->add(path, EnumMapper::toDepth(jdepth),
          jforce ? true : false,
          jnoIgnore ? true : false,
          jnoAutoProps ? true : false,

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT jlongArray JNICALL
Java_org_apache_subversion_javahl_SVNClient_update
(JNIEnv *env, jobject jthis, jobject jtargets, jobject jrevision,
 jobject jdepth, jboolean jdepthIsSticky, jboolean jmakeParents,
 jboolean jignoreExternals, jboolean jallowUnverObstructions)
{
  JNIEntry(SVNClient, update);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  Revision revision(jrevision);
  if (JNIUtil::isExceptionThrown())
    return NULL;

  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_commit
(JNIEnv *env, jobject jthis, jobject jtargets, jobject jdepth,
 jboolean jnoUnlock, jboolean jkeepChangelist, jobject jchangelists,
 jobject jrevpropTable, jobject jmessage, jobject jcallback)
{
  JNIEntry(SVNClient, commit);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;

  CommitMessage message(jmessage);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

Java_org_apache_subversion_javahl_SVNClient_copy
(JNIEnv *env, jobject jthis, jobject jcopySources, jstring jdestPath,
 jboolean jcopyAsChild, jboolean jmakeParents, jboolean jignoreExternals,
 jobject jrevpropTable, jobject jmessage, jobject jcallback)
{
  JNIEntry(SVNClient, copy);

  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  Array copySrcArray(jcopySources);
  if (JNIUtil::isExceptionThrown())
    return;

  CopySources copySources(copySrcArray);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

(JNIEnv *env, jobject jthis, jobject jsrcPaths, jstring jdestPath,
 jboolean jforce, jboolean jmoveAsChild, jboolean jmakeParents,
 jboolean jmetadataOnly, jboolean jallowMixRev, jobject jrevpropTable,
 jobject jmessage, jobject jcallback)
{
  JNIEntry(SVNClient, move);

  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  SVN::Pool tmpPool;
  StringArray srcPathArr(jsrcPaths);
  Targets srcPaths(srcPathArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;
  JNIStringHolder destPath(jdestPath);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_mkdir
(JNIEnv *env, jobject jthis, jobject jtargets, jboolean jmakeParents,
 jobject jrevpropTable, jobject jmessage, jobject jcallback)
{
  JNIEntry(SVNClient, mkdir);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;

  CommitMessage message(jmessage);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_cleanup
(JNIEnv *env, jobject jthis, jstring jpath)
{
  JNIEntry(SVNClient, cleanup);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  cl->cleanup(path);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_resolve
(JNIEnv *env, jobject jthis, jstring jpath, jobject jdepth, jobject jchoice)
{
  JNIEntry(SVNClient, resolve);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  cl->resolve(path, EnumMapper::toDepth(jdepth),
              EnumMapper::toConflictChoice(jchoice));
}

JNIEXPORT jlong JNICALL
Java_org_apache_subversion_javahl_SVNClient_doExport
(JNIEnv *env, jobject jthis, jstring jsrcPath, jstring jdestPath,
 jobject jrevision, jobject jpegRevision, jboolean jforce,
 jboolean jignoreExternals, jobject jdepth, jstring jnativeEOL)
{
  JNIEntry(SVNClient, doExport);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return -1;
    }
  Revision revision(jrevision);
  if (JNIUtil::isExceptionThrown())
    return -1;

  Revision pegRevision(jpegRevision);
  if (JNIUtil::isExceptionThrown())
    return -1;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

Java_org_apache_subversion_javahl_SVNClient_doSwitch
(JNIEnv *env, jobject jthis, jstring jpath, jstring jurl, jobject jrevision,
 jobject jPegRevision, jobject jdepth, jboolean jdepthIsSticky,
 jboolean jignoreExternals, jboolean jallowUnverObstructions,
 jboolean jignoreAncestry)
{
  JNIEntry(SVNClient, doSwitch);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return -1;
    }
  Revision revision(jrevision);
  if (JNIUtil::isExceptionThrown())
    return -1;

  Revision pegRevision(jPegRevision);
  if (JNIUtil::isExceptionThrown())
    return -1;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

Java_org_apache_subversion_javahl_SVNClient_doImport
(JNIEnv *env, jobject jthis, jstring jpath, jstring jurl, jobject jdepth,
 jboolean jnoIgnore, jboolean jnoAutoProps,
 jboolean jignoreUnknownNodeTypes, jobject jrevpropTable,
 jobject jimportFilterCallback, jobject jmessage, jobject jcommitCallback)
{
  JNIEntry(SVNClient, doImport);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder url(jurl);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_SVNClient_suggestMergeSources
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision)
{
  JNIEntry(SVNClient, suggestMergeSources);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }

  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return NULL;

  Revision pegRevision(jpegRevision);
  if (JNIUtil::isExceptionThrown())
    return NULL;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZZ
(JNIEnv *env, jobject jthis, jstring jpath1, jobject jrevision1,
 jstring jpath2, jobject jrevision2, jstring jlocalPath, jboolean jforceDelete,
 jobject jdepth, jboolean jignoreMergeinfo, jboolean jdiffIgnoreAncestry,
 jboolean jdryRun, jboolean jrecordOnly)
{
  JNIEntry(SVNClient, merge);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  Revision revision1(jrevision1);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder path1(jpath1);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZZ
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
 jobject jranges, jstring jlocalPath, jboolean jforceDelete, jobject jdepth,
 jboolean jignoreMergeinfo, jboolean jdiffIgnoreAncestry,
 jboolean jdryRun, jboolean jrecordOnly)
{
  JNIEntry(SVNClient, merge);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision pegRevision(jpegRevision);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_mergeReintegrate
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
 jstring jlocalPath, jboolean jdryRun)
{
  JNIEntry(SVNClient, mergeReintegrate);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision pegRevision(jpegRevision);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

static void SVNClient_properties
(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
 jobject jpegRevision, jobject jdepth, jobject jchangelists,
 jobject jproplistCallback, bool inherited)
{
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision revision(jrevision);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_propertySetRemote
(JNIEnv *env, jobject jthis, jstring jpath, jlong jbaseRev, jstring jname,
 jbyteArray jval, jobject jmessage, jboolean jforce, jobject jrevpropTable,
 jobject jcallback)
{
  JNIEntry(SVNClient, propertySet);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder name(jname);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_propertySetLocal
(JNIEnv *env, jobject jthis, jobject jtargets, jstring jname,
 jbyteArray jval, jobject jdepth, jobject jchangelists, jboolean jforce)
{
  JNIEntry(SVNClient, propertySet);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder name(jname);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT jbyteArray JNICALL
Java_org_apache_subversion_javahl_SVNClient_revProperty
(JNIEnv *env, jobject jthis, jstring jpath, jstring jname, jobject jrevision)
{
  JNIEntry(SVNClient, revProperty);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return NULL;

  JNIStringHolder name(jname);
  if (JNIUtil::isExceptionThrown())
    return NULL;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_SVNClient_revProperties
(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision)
{
  JNIEntry(SVNClient, revProperty);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return NULL;

  Revision revision(jrevision);
  if (JNIUtil::isExceptionThrown())
    return NULL;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_setRevProperty
(JNIEnv *env, jobject jthis, jstring jpath, jstring jname, jobject jrevision,
 jstring jval, jstring joriginalValue, jboolean jforce)
{
  JNIEntry(SVNClient, setRevProperty);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder name(jname);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT jbyteArray JNICALL
Java_org_apache_subversion_javahl_SVNClient_propertyGet
(JNIEnv *env, jobject jthis, jstring jpath, jstring jname, jobject jrevision,
 jobject jpegRevision, jobject jchangelists)
{
  JNIEntry(SVNClient, propertyGet);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return NULL;

  JNIStringHolder name(jname);
  if (JNIUtil::isExceptionThrown())
    return NULL;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_SVNClient_getMergeinfo
(JNIEnv *env, jobject jthis, jstring jtarget, jobject jpegRevision)
{
  JNIEntry(SVNClient, getMergeinfo);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  JNIStringHolder target(jtarget);
  if (JNIUtil::isExceptionThrown())
    return NULL;
  Revision pegRevision(jpegRevision);
  if (JNIUtil::isExceptionThrown())
    return NULL;
  return cl->getMergeinfo(target, pegRevision);
}

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

(JNIEnv *env, jobject jthis, jobject jkind, jstring jpathOrUrl,
 jobject jpegRevision, jstring jmergeSourceUrl, jobject jsrcPegRevision,
 jobject jsrcStartRevision, jobject jsrcEndRevision,
 jboolean jdiscoverChangedPaths, jobject jdepth, jobject jrevProps,
 jobject jlogMessageCallback)
{
  JNIEntry(SVNClient, getMergeinfoLog);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  Revision pegRevision(jpegRevision, true);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision srcPegRevision(jsrcPegRevision, true);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

 jstring jtarget2, jobject jrevision2, jstring jrelativeToDir,
 jobject jstream, jobject jdepth, jobject jchangelists,
 jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
 jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly,
 jobject jdiffOptions)
{
  JNIEntry(SVNClient, diff);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder target1(jtarget1);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision revision1(jrevision1);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

 jobject jstartRevision, jobject jendRevision, jstring jrelativeToDir,
 jobject jstream, jobject jdepth, jobject jchangelists,
 jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
 jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly,
 jobject jdiffOptions)
{
  JNIEntry(SVNClient, diff);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder target(jtarget);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision pegRevision(jpegRevision);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collect...
(JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
 jstring jtarget2, jobject jrevision2, jobject jdepth, jobject jchangelists,
 jboolean jignoreAncestry, jobject jdiffSummaryReceiver)
{
  JNIEntry(SVNClient, diffSummarize);

  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder target1(jtarget1);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision revision1(jrevision1);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

(JNIEnv *env, jobject jthis, jstring jtarget, jobject jPegRevision,
 jobject jStartRevision, jobject jEndRevision, jobject jdepth,
 jobject jchangelists, jboolean jignoreAncestry,
 jobject jdiffSummaryReceiver)
{
  JNIEntry(SVNClient, diffSummarize);

  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder target(jtarget);
  if (JNIUtil::isExceptionThrown())
    return;
  Revision pegRevision(jPegRevision);
  if (JNIUtil::isExceptionThrown())
    return;
  Revision startRevision(jStartRevision);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_streamFileContent
(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
 jobject jpegRevision, jobject jstream)
{
  JNIEntry(SVNClient, streamFileContent);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision revision(jrevision);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_SVNClient_getVersionInfo
(JNIEnv *env, jobject jthis, jstring jpath, jstring jtrailUrl,
 jboolean jlastChanged)
{
  JNIEntry(SVNClient, getVersionInfo);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return NULL;

  JNIStringHolder trailUrl(jtrailUrl);
  return cl->getVersionInfo(path, trailUrl, jlastChanged ? true:false);
}

JNIEXPORT void JNICALL Java_org_apache_subversion_javahl_SVNClient_upgrade
  (JNIEnv *env, jobject jthis, jstring jpath)
{
  JNIEntry(SVNClient, upgrade);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  cl->upgrade(path);
}

JNIEXPORT void JNICALL

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_relocate
(JNIEnv *env, jobject jthis, jstring jfrom, jstring jto, jstring jpath,
 jboolean jignoreExternals)
{
  JNIEntry(SVNClient, relocate);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder from(jfrom);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder to(jto);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_blame
(JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
 jobject jrevisionStart, jobject jrevisionEnd, jboolean jignoreMimeType,
 jboolean jincludeMergedRevisions, jobject jblameCallback)
{
  JNIEntry(SVNClient, blame);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision pegRevision(jpegRevision, false, true);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_setConfigDirectory
(JNIEnv *env, jobject jthis, jstring jconfigDir)
{
  JNIEntry(SVNClient, setConfigDirectory);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  JNIStringHolder configDir(jconfigDir);
  if (JNIUtil::isExceptionThrown())
    return;

  cl->getClientContext().setConfigDirectory(configDir);
}

JNIEXPORT jstring JNICALL
Java_org_apache_subversion_javahl_SVNClient_getConfigDirectory
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, getConfigDirectory);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }

  const char *configDir = cl->getClientContext().getConfigDirectory();
  return JNIUtil::makeJString(configDir);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_cancelOperation
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNClient, cancelOperation);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }
  cl->getClientContext().cancelOperation();
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_addToChangelist
(JNIEnv *env, jobject jthis, jobject jtargets, jstring jchangelist,
 jobject jdepth, jobject jchangelists)
{
  JNIEntry(SVNClient, addToChangelist);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }
  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder changelist_name(jchangelist);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_removeFromChangelists
(JNIEnv *env, jobject jthis, jobject jtargets, jobject jdepth,
 jobject jchangelists)
{
  JNIEntry(SVNClient, removeFromChangelist);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }
  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;

  StringArray changelists(jchangelists);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_getChangelists
(JNIEnv *env, jobject jthis, jstring jroot_path, jobject jchangelists,
 jobject jdepth, jobject jchangelistCallback)
{
  JNIEntry(SVNClient, getChangelist);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }

  JNIStringHolder root_path(jroot_path);
  if (JNIUtil::isExceptionThrown())
    return;

  StringArray changelists(jchangelists);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_lock
(JNIEnv *env, jobject jthis, jobject jtargets, jstring jcomment,
 jboolean jforce)
{
  JNIEntry(SVNClient, lock);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }
  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder comment(jcomment);
  if (JNIUtil::isExceptionThrown())

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_unlock
(JNIEnv *env, jobject jthis, jobject jtargets, jboolean jforce)
{
  JNIEntry(SVNClient, unlock);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }

  SVN::Pool tmpPool;
  StringArray targetsArr(jtargets);
  Targets targets(targetsArr, tmpPool);
  if (JNIUtil::isExceptionThrown())
    return;


src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_info2
(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
 jobject jpegRevision, jobject jdepth, jobject jchangelists,
 jobject jinfoCallback)
{
  JNIEntry(SVNClient, info2);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }
  JNIStringHolder path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision revision(jrevision);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_patch
(JNIEnv *env, jobject jthis, jstring jpatchPath, jstring jtargetPath,
 jboolean jdryRun, jint jstripCount, jboolean jreverse,
 jboolean jignoreWhitespace, jboolean jremoveTempfiles, jobject jcallback)
{
  JNIEntry(SVNClient, patch);
  SVNClient *cl = SVNClient::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }

  JNIStringHolder patchPath(jpatchPath);
  if (JNIUtil::isExceptionThrown())
    return;

  JNIStringHolder targetPath(jtargetPath);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_dispose
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNRepos, dispose);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }
  cl->dispose(jthis);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_finalize
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNRepos, finalize);

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_create
(JNIEnv *env, jobject jthis, jobject jpath, jboolean jdisableFsyncCommit,
 jboolean jkeepLog, jobject jconfigpath, jstring jfstype)
{
  JNIEntry(SVNRepos, create);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  File configpath(jconfigpath);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_deltify
(JNIEnv *env, jobject jthis, jobject jpath, jobject jrevisionStart,
 jobject jrevisionStop)
{
  JNIEntry(SVNRepos, deltify);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision revisionStart(jrevisionStart);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_dump
(JNIEnv *env, jobject jthis, jobject jpath, jobject jdataout,
 jobject jrevisionStart, jobject jrevisionEnd, jboolean jincremental,
 jboolean juseDeltas, jobject jnotifyCallback)
{
  JNIEntry(SVNRepos, dump);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  OutputStream dataOut(jdataout);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_hotcopy
(JNIEnv *env, jobject jthis, jobject jpath, jobject jtargetPath,
 jboolean jcleanLogs, jboolean jincremental)
{
  JNIEntry(SVNRepos, hotcopy);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  File targetPath(jtargetPath);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_listDBLogs
(JNIEnv *env, jobject jthis, jobject jpath, jobject jreceiver)
{
  JNIEntry(SVNRepos, listDBLogs);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  MessageReceiver mr(jreceiver);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_listUnusedDBLogs
(JNIEnv *env, jobject jthis, jobject jpath, jobject jreceiver)
{
  JNIEntry(SVNRepos, listUnusedDBLogs);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  MessageReceiver mr(jreceiver);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

Java_org_apache_subversion_javahl_SVNRepos_load
(JNIEnv *env, jobject jthis, jobject jpath, jobject jinputData,
 jobject jrevisionStart, jobject jrevisionEnd,
 jboolean jignoreUUID, jboolean jforceUUID, jboolean jusePreCommitHook,
 jboolean jusePostCommitHook, jstring jrelativePath, jobject jnotifyCallback)
{
  JNIEntry(SVNRepos, load);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  InputStream inputData(jinputData);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_lstxns
(JNIEnv *env, jobject jthis, jobject jpath, jobject jmessageReceiver)
{
  JNIEntry(SVNRepos, lstxns);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  MessageReceiver mr(jmessageReceiver);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

}

JNIEXPORT jlong JNICALL
Java_org_apache_subversion_javahl_SVNRepos_recover
(JNIEnv *env, jobject jthis, jobject jpath, jobject jnotifyCallback)
{
  JNIEntry(SVNRepos, recover);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return -1;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return -1;

  ReposNotifyCallback callback(jnotifyCallback);

  return cl->recover(path, jnotifyCallback != NULL ? &callback : NULL);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_freeze
(JNIEnv *env, jobject jthis, jobject jaction, jobjectArray jpaths)
{
  JNIEntry(SVNRepos, freeze);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  if (!jpaths || !env->GetArrayLength(jpaths))
    {
      JNIUtil::throwError(_("list of repository paths must not be empty"));
      return;
    }

  ReposFreezeAction action(jaction);
  cl->freeze(jpaths, &action);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_rmtxns
(JNIEnv *env, jobject jthis, jobject jpath, jobjectArray jtransactions)
{
  JNIEntry(SVNRepos, rmtxns);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  StringArray transactions(jtransactions);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_setRevProp
(JNIEnv *env, jobject jthis, jobject jpath, jobject jrevision,
 jstring jpropName, jstring jpropValue, jboolean jusePreRevPropChangeHook,
 jboolean jusePostRevPropChangeHook)
{
  JNIEntry(SVNRepos, setRevProp);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision revision(jrevision);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN


JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_verify
(JNIEnv *env, jobject jthis, jobject jpath, jobject jrevisionStart,
 jobject jrevisionEnd, jobject jcallback)
{
  JNIEntry(SVNRepos, verify);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  Revision revisionStart(jrevisionStart);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

}

JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_SVNRepos_lslocks
(JNIEnv *env, jobject jthis, jobject jpath, jobject jdepth)
{
  JNIEntry(SVNRepos, lslocks);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return NULL;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return NULL;

  return cl->lslocks(path, EnumMapper::toDepth(jdepth));
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_rmlocks
(JNIEnv *env, jobject jthis, jobject jpath, jobjectArray jlocks)
{
  JNIEntry(SVNRepos, rmlocks);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  StringArray locks(jlocks);
  if (JNIUtil::isExceptionThrown())
    return;

src/subversion/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp  view on Meta::CPAN

}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_upgrade
(JNIEnv *env, jobject jthis, jobject jpath, jobject jnotifyCallback)
{
  JNIEntry(SVNRepos, upgrade);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  ReposNotifyCallback callback(jnotifyCallback);

  cl->upgrade(path, jnotifyCallback != NULL ? &callback : NULL);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_pack
(JNIEnv *env, jobject jthis, jobject jpath, jobject jnotifyCallback)
{
  JNIEntry(SVNRepos, pack);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError(_("bad C++ this"));
      return;
    }

  File path(jpath);
  if (JNIUtil::isExceptionThrown())
    return;

  ReposNotifyCallback callback(jnotifyCallback);

  cl->pack(path, jnotifyCallback != NULL ? &callback : NULL);
}

JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNRepos_cancelOperation
(JNIEnv *env, jobject jthis)
{
  JNIEntry(SVNRepos, cancelOperation);
  SVNRepos *cl = SVNRepos::getCppObject(jthis);
  if (cl == NULL)
    {
      JNIUtil::throwError("bad C++ this");
      return;
    }
  cl->cancelOperation();
}

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientException.java  view on Meta::CPAN

 *    KIND, either express or implied.  See the License for the
 *    specific language governing permissions and limitations
 *    under the License.
 * ====================================================================
 * @endcopyright
 */

package org.apache.subversion.javahl;

/**
 * This exception is thrown whenever something goes wrong in the
 * Subversion JavaHL binding's JNI interface.
 */
public class ClientException extends NativeException
{
    // Update the serialVersionUID when there is a incompatible change
    // made to this class.  See any of the following, depending upon
    // the Java release.
    // http://java.sun.com/j2se/1.3/docs/guide/serialization/spec/version.doc7.html
    // http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf
    // http://java.sun.com/j2se/1.5.0/docs/guide/serialization/spec/version.html#6678

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java  view on Meta::CPAN

    String author;

    /** post commit error (or NULL) */
    String postCommitError;

    /** repos root (or NULL) */
    String reposRoot;

    /** This constructor will be only called from the jni code.  */
    public CommitInfo(long rev, String d, String a, String pce, String rr)
            throws java.text.ParseException
    {
        revision = rev;
        date = (new LogDate(d)).getDate();
        author = a;
        postCommitError = pce;
        reposRoot = rr;
    }

    /**
     * retrieve the revision of the commit

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java  view on Meta::CPAN

     * @param depth       How deep to recurse into subdirectories.
     * @param onServer    Request status information from server.
     * @param getAll      get status for uninteresting (unchanged) files.
     * @param noIgnore    get status for normaly ignored files and directories.
     * @param ignoreExternals if externals are ignored during status
     * @param changelists changelists to filter by
     */
    void status(String path, Depth depth, boolean onServer,
                boolean getAll, boolean noIgnore, boolean ignoreExternals,
                Collection<String> changelists, StatusCallback callback)
            throws ClientException;

    /**
     * Lists the directory entries of a url on the server.
     * @param url             the url to list
     * @param revision        the revision to list
     * @param pegRevision     the revision to interpret url
     * @param depth           the depth to recurse into subdirectories
     * @param direntFields    the fields to retrieve
     * @param fetchLocks      whether to fetch lock information
     * @param callback        the callback to receive the directory entries
     */
    void list(String url, Revision revision, Revision pegRevision,
              Depth depth, int direntFields, boolean fetchLocks,
              ListCallback callback)
            throws ClientException;

    /**
     * Sets the username used for authentication.
     * @param username The username, ignored if the empty string.  Set
     * to the empty string to clear it.
     * @throws IllegalArgumentException If <code>username</code> is
     * <code>null</code>.
     * @see #password(String)
     */
    void username(String username);

    /**
     * Sets the password used for authentication.
     * @param password The password, ignored if the empty string.  Set
     * to the empty string to clear it.
     * @throws IllegalArgumentException If <code>password</code> is
     * <code>null</code>.
     * @see #username(String)
     */
    void password(String password);

    /**
     * Register callback interface to supply username and password on demand.
     * This callback can also be used to provide theequivalent of the
     * <code>--no-auth-cache</code> and <code>--non-interactive</code> arguments
     * accepted by the command-line client.

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java  view on Meta::CPAN

     * @param revProps      the revprops to retrieve
     * @param limit         limit the number of log messages (if 0 or less no
     *                      limit)
     * @param callback      the object to receive the log messages
     */
    void logMessages(String path, Revision pegRevision,
                     List<RevisionRange> ranges, boolean stopOnCopy,
                     boolean discoverPath, boolean includeMergedRevisions,
                     Set<String> revProps, long limit,
                     LogMessageCallback callback)
            throws ClientException;

    /**
     * Executes a revision checkout.
     * @param moduleName name of the module to checkout.
     * @param destPath destination directory for checkout.
     * @param revision the revision to checkout.
     * @param pegRevision the peg revision to interpret the path
     * @param depth how deep to checkout files recursively.
     * @param ignoreExternals if externals are ignored during checkout
     * @param allowUnverObstructions allow unversioned paths that obstruct adds
     * @throws ClientException
     */
    long checkout(String moduleName, String destPath, Revision revision,
                  Revision pegRevision, Depth depth,
                  boolean ignoreExternals,
                  boolean allowUnverObstructions) throws ClientException;

    /**
     * Sets the notification callback used to send processing information back
     * to the calling program.
     * @param notify listener that the SVN library should call on many
     *               file operations.
     */
    void notification2(ClientNotifyCallback notify);

    /**

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java  view on Meta::CPAN


    /**
     * Sets a file for deletion.
     * @param path      path or url to be deleted
     * @param force     delete even when there are local modifications.
     * @param keepLocal only remove the paths from the repository.
     * @param revpropTable A string-to-string mapping of revision properties
     *                     to values which will be set if this operation
     *                     results in a commit.
     * @param handler   the commit message callback
     * @throws ClientException
     */
    void remove(Set<String> path, boolean force, boolean keepLocal,
                Map<String, String> revpropTable, CommitMessageCallback handler,
                CommitCallback callback)
            throws ClientException;

    /**
     * Reverts a file to a pristine state.
     * @param path      path of the file.
     * @param depth     the depth to recurse into subdirectories
     * @param changelists changelists to filter by
     * @throws ClientException
     */
    void revert(String path, Depth depth, Collection<String> changelists)
            throws ClientException;

    /**
     * Adds a file to the repository.
     * @param path      path to be added.
     * @param depth     the depth to recurse into subdirectories
     * @param force     if adding a directory and recurse true and path is a
     *                  directory, all not already managed files are added.
     * @param noIgnores if false, don't add files or directories matching
     *                  ignore patterns
     * @param addParents add any intermediate parents to the working copy
     * @throws ClientException
     * @note this method behaves like the 1.8 version with noAutoProps=false
     */
    void add(String path, Depth depth, boolean force, boolean noIgnores,
             boolean addParents)
        throws ClientException;

    /**
     * Adds a file to the repository.
     * @param path      path to be added.
     * @param depth     the depth to recurse into subdirectories
     * @param force     if adding a directory and recurse true and path is a
     *                  directory, all not already managed files are added.
     * @param noIgnores if false, don't add files or directories matching
     *                  ignore patterns
     * @param noAutoProps if true, ignore any auto-props configuration
     * @param addParents add any intermediate parents to the working copy
     * @throws ClientException
     * @since 1.8
     */
    void add(String path, Depth depth, boolean force,
             boolean noIgnores, boolean noAutoProps, boolean addParents)
        throws ClientException;

    /**
     * Updates the directories or files from repository
     * @param path array of target files.
     * @param revision the revision number to update.
     *                 Revision.HEAD will update to the
     *                 latest revision.
     * @param depth  the depth to recursively update.
     * @param depthIsSticky if set, and depth is not {@link Depth#unknown},
     *                      then also set the ambient depth value to depth.
     * @param ignoreExternals if externals are ignored during update
     * @param allowUnverObstructions allow unversioned paths that obstruct adds
     * @throws ClientException
     */
    long[] update(Set<String> path, Revision revision, Depth depth,
                  boolean depthIsSticky, boolean makeParents,
                  boolean ignoreExternals, boolean allowUnverObstructions)
        throws ClientException;

    /**
     * Commits changes to the repository.
     * @param path            files to commit.
     * @param depth           how deep to recurse in subdirectories
     * @param noUnlock        do remove any locks
     * @param keepChangelist  keep changelist associations after the commit.
     * @param changelists  if non-null, filter paths using changelists
     * @param handler   the commit message callback
     * @param revpropTable A string-to-string mapping of revision properties
     *                     to values which will be set if this operation
     *                     results in a commit.
     * @throws ClientException
     */
    void commit(Set<String> path, Depth depth, boolean noUnlock,
                boolean keepChangelist, Collection<String> changelists,
                Map<String, String> revpropTable, CommitMessageCallback handler,
                CommitCallback callback)
            throws ClientException;

    /**
     * Copy versioned paths with the history preserved.
     *
     * @param sources A list of <code>CopySource</code> objects.
     * @param destPath Destination path or URL.
     * @param copyAsChild Whether to copy <code>srcPaths</code> as
     * children of <code>destPath</code>.
     * @param makeParents Whether to create intermediate parents
     * @param ignoreExternals Whether or not to process external definitions
     *                        as part of this operation.
     * @param revpropTable A string-to-string mapping of revision properties
     *                     to values which will be set if this operation
     *                     results in a commit.
     * @param handler   the commit message callback, may be <code>null</code>
     *                  if <code>destPath</code> is not a URL
     * @throws ClientException If the copy operation fails.
     */
    void copy(List<CopySource> sources, String destPath,
              boolean copyAsChild, boolean makeParents,
              boolean ignoreExternals, Map<String, String> revpropTable,
              CommitMessageCallback handler, CommitCallback callback)
            throws ClientException;

    /**
     * Move or rename versioned paths.
     *
     * @param srcPaths Source paths or URLs.
     * @param destPath Destination path or URL.
     * @param force Whether to perform the move even if local
     * modifications exist.
     * @param moveAsChild Whether to move <code>srcPaths</code> as
     * children of <code>destPath</code>.
     * @param makeParents Whether to create intermediate parents.
     * @param metadataOnly Move just the metadata and not the working files/dirs
     * @param allowMixRev If true use copy and delete without move tracking
     *                    when a srcPath is mixed-revision, if false return
     *                    an error when a srcPath is mixed-revision.
     * @param revpropTable A string-to-string mapping of revision properties
     *                     to values which will be set if this operation
     *                     results in a commit.
     * @param handler   the commit message callback, may be <code>null</code>
     *                  if <code>destPath</code> is not a URL
     * @throws ClientException If the move operation fails.
     * @since 1.8
     */
    void move(Set<String> srcPaths, String destPath, boolean force,
              boolean moveAsChild, boolean makeParents, boolean metadataOnly,
              boolean allowMixRev, Map<String, String> revpropTable,
              CommitMessageCallback handler, CommitCallback callback)
        throws ClientException;

    /**
     * @deprecated Provided for backward compatibility with 1.7. Passes
     *             metadataOnly false and allowMixRev true.
     */
    void move(Set<String> srcPaths, String destPath, boolean force,
              boolean moveAsChild, boolean makeParents,
              Map<String, String> revpropTable,
              CommitMessageCallback handler, CommitCallback callback)
        throws ClientException;

    /**
     * Creates a directory directly in a repository or creates a
     * directory on disk and schedules it for addition.
     * @param path      directories to be created
     * @param makeParents Whether to create intermediate parents
     * @param revpropTable A string-to-string mapping of revision properties
     *                     to values which will be set if this operation
     *                     results in a commit.
     * @param handler   the handler to use if paths contains URLs
     * @throws ClientException
     */
    void mkdir(Set<String> path, boolean makeParents,
               Map<String, String> revpropTable,
               CommitMessageCallback handler, CommitCallback callback)
            throws ClientException;

    /**
     * Recursively cleans up a local directory, finishing any
     * incomplete operations, removing lockfiles, etc.
     * @param path a local directory.
     * @throws ClientException
     */
    void cleanup(String path) throws ClientException;

    /**
     * Resolves the <i>conflicted</i> state on a WC path (or tree).
     * @param path The path to resolve.
     * @param depth How deep to recurse into child paths.
     * @param conflictResult Which version to choose in the event of a
     *                       conflict.
     * @throws SubversionException If an error occurs.
     */
    void resolve(String path, Depth depth, ConflictResult.Choice conflictResult)
        throws SubversionException;

    /**
     * Exports the contents of either a subversion repository into a
     * 'clean' directory (meaning a directory with no administrative
     * directories).
     *
     * @param srcPath         the url of the repository path to be exported
     * @param destPath        a destination path that must not already exist.
     * @param revision        the revsion to be exported
     * @param pegRevision     the revision to interpret srcPath
     * @param force           set if it is ok to overwrite local files
     * @param ignoreExternals ignore external during export
     * @param depth           how deep to recurse in subdirectories
     * @param nativeEOL       which EOL characters to use during export
     * @throws ClientException
     */
    long doExport(String srcPath, String destPath, Revision revision,
                  Revision pegRevision, boolean force, boolean ignoreExternals,
                  Depth depth, String nativeEOL)
            throws ClientException;

    /**
     * Update local copy to mirror a new url.
     * @param path      the working copy path
     * @param url       the new url for the working copy
     * @param revision  the new base revision of working copy
     * @param pegRevision the revision at which to interpret <code>path</code>
     * @param depth     how deep to traverse into subdirectories
     * @param depthIsSticky if set, and depth is not {@link Depth#unknown},
     *                      then also set the ambient depth value to depth.
     * @param ignoreExternals whether to process externals definitions
     * @param allowUnverObstructions allow unversioned paths that obstruct adds
     * @param ignoreAncestry whether to skip common ancestry sanity check between
                             <code>path</code> and <code>url</code>
     * @throws ClientException
     */
    long doSwitch(String path, String url, Revision revision,
                  Revision pegRevision, Depth depth, boolean depthIsSticky,
                  boolean ignoreExternals, boolean allowUnverObstructions,
                  boolean ignoreAncestry)
            throws ClientException;

    /**
     * Import a file or directory into a repository directory  at
     * head.
     * @param path      the local path
     * @param url       the target url
     * @param depth     depth to traverse into subdirectories
     * @param noIgnore  whether to add files matched by ignore patterns
     * @param noAutoProps if true, ignore any auto-props configuration
     * @param ignoreUnknownNodeTypes whether to ignore files which
     *                  the node type is not konwn, just as pipes
     * @param revpropTable A string-to-string mapping of revision properties
     *                     to values which will be set if this operation
     *                     results in a commit.
     * @param messageHandler   the commit message callback
     * @param commitCallback   the commit status callback
     * @throws ClientException
     * @since 1.8
     */
    void doImport(String path, String url, Depth depth,
                  boolean noIgnore, boolean noAutoProps,
                  boolean ignoreUnknownNodeTypes,
                  Map<String, String> revpropTable,
                  ImportFilterCallback importFilterCallback,
                  CommitMessageCallback messageHandler,
                  CommitCallback commitCallback)
            throws ClientException;


    /**
     * Import a file or directory into a repository directory  at
     * head.
     * @param path      the local path
     * @param url       the target url
     * @param depth     depth to traverse into subdirectories
     * @param noIgnore  whether to add files matched by ignore patterns
     * @param ignoreUnknownNodeTypes whether to ignore files which
     *                  the node type is not konwn, just as pipes
     * @param revpropTable A string-to-string mapping of revision properties
     *                     to values which will be set if this operation
     *                     results in a commit.
     * @param handler   the commit message callback
     * @param callback  the commit status callback
     * @throws ClientException
     * @note this method behaves like the 1.8 version with noAutoProps=false
     *       and without the filtering option.
     */
    void doImport(String path, String url, Depth depth,
                  boolean noIgnore, boolean ignoreUnknownNodeTypes,
                  Map<String, String> revpropTable,
                  CommitMessageCallback handler, CommitCallback callback)
            throws ClientException;

    /**
     * Return an ordered list of suggested merge source URLs.
     * @param path The merge target path for which to suggest sources.
     * @param pegRevision Peg revision used to interpret path.
     * @return The list of URLs, empty if there are no suggestions.
     * @throws ClientException If an error occurs.
     */
    Set<String> suggestMergeSources(String path, Revision pegRevision)
            throws SubversionException;

    /**
     * Merge changes from two paths into a new local path.
     *
     * @param path1          first path or url
     * @param revision1      first revision
     * @param path2          second path or url
     * @param revision2      second revision
     * @param localPath      target local path
     * @param force          overwrite local changes
     * @param depth          how deep to traverse into subdirectories
     * @param ignoreMergeinfo ignore merge history, treat sources as unrelated
     * @param diffIgnoreAncestry always treat source files as related
     * @param dryRun         do not change anything
     * @param recordOnly     record mergeinfo but do not run merge
     * @throws ClientException
     * @since 1.8
     */
    void merge(String path1, Revision revision1, String path2,
               Revision revision2, String localPath, boolean force, Depth depth,
               boolean ignoreMergeinfo, boolean diffIgnoreAncestry,
               boolean dryRun, boolean recordOnly)
            throws ClientException;

    /**
     * Merge changes from two paths into a new local path.
     *
     * @param path1          first path or url
     * @param revision1      first revision
     * @param path2          second path or url
     * @param revision2      second revision
     * @param localPath      target local path
     * @param force          overwrite local changes
     * @param depth          how deep to traverse into subdirectories
     * @param ignoreAncestry ignore if files are not related
     * @param dryRun         do not change anything
     * @param recordOnly     record mergeinfo but do not run merge
     * @throws ClientException
     * @note Behaves like the 1.8 where ignoreAncestry maps to
     *       both ignoreMergeinfo and diffIgnoreAncestry
     */
    void merge(String path1, Revision revision1, String path2,
               Revision revision2, String localPath, boolean force, Depth depth,
               boolean ignoreAncestry, boolean dryRun, boolean recordOnly)
            throws ClientException;

    /**
     * Merge set of revisions into a new local path.
     * @param path          path or url
     * @param pegRevision   revision to interpret path
     * @param revisions     revisions to merge; may be null, indicating that
     *                      the optimal range should be determined automatcially
     * @param localPath     target local path
     * @param force         overwrite local changes
     * @param depth         how deep to traverse into subdirectories
     * @param ignoreMergeinfo ignore merge history, treat sources as unrelated
     * @param diffIgnoreAncestry always treat source files as related
     * @param dryRun        do not change anything
     * @param recordOnly    record mergeinfo but do not run merge
     * @throws ClientException
     * @since 1.8
     */
    void merge(String path, Revision pegRevision, List<RevisionRange> revisions,
               String localPath, boolean force, Depth depth,
               boolean ignoreMergeinfo, boolean diffIgnoreAncestry,
               boolean dryRun, boolean recordOnly)
             throws ClientException;

    /**
     * Merge set of revisions into a new local path.
     * @param path          path or url
     * @param pegRevision   revision to interpret path
     * @param revisions     revisions to merge;
     *                      may be null, indicating that the optimal range
     *                      should be determined automatcially (new in 1.8)
     * @param localPath     target local path
     * @param force         overwrite local changes
     * @param depth         how deep to traverse into subdirectories
     * @param ignoreAncestry ignore if files are not related
     * @param dryRun        do not change anything
     * @param recordOnly    record mergeinfo but do not run merge
     * @throws ClientException
     * @note Behaves like the 1.8 where ignoreAncestry maps to
     *       both ignoreMergeinfo and diffIgnoreAncestry
     */
    void merge(String path, Revision pegRevision, List<RevisionRange> revisions,
               String localPath, boolean force, Depth depth,
               boolean ignoreAncestry, boolean dryRun, boolean recordOnly)
             throws ClientException;

    /**
     * Perform a reintegration merge of path into localPath.
     * localPath must be a single-revision, infinite depth,
     * pristine, unswitched working copy -- in other words, it must
     * reflect a single revision tree, the "target".  The mergeinfo on
     * path must reflect that all of the target has been merged into it.
     * Then this behaves like a merge from the target's URL to the
     * localPath.
     *
     * The depth of the merge is always infinity.
     * @param path          path or url
     * @param pegRevision   revision to interpret path
     * @param localPath     target local path
     * @param dryRun        do not change anything
     * @throws ClientException
     * @deprecated Will be removed in a future release
     */
    void mergeReintegrate(String path, Revision pegRevision,
                          String localPath, boolean dryRun)
             throws ClientException;

    /**
     * Get mergeinfo for <code>path</code> at <code>pegRevision</code>.
     * @param path WC path or URL.
     * @param pegRevision peg revision at which to get the merge info for
     * <code>path</code>.
     * @return The merge history of <code>path</code>.
     * @throws SubversionException
     */
    Mergeinfo getMergeinfo(String path, Revision pegRevision)
        throws SubversionException;

    /**
     * Retrieve either merged or eligible-to-be-merged revisions.
     * @param kind                   kind of revisions to receive
     * @param pathOrUrl              target of merge
     * @param pegRevision            peg rev for pathOrUrl
     * @param mergeSourceUrl         the source of the merge
     * @param srcPegRevision         peg rev for mergeSourceUrl
     * @param srcStartRevieion       lower bound of the source revision range
     * @param srcEndRevision         upper bound of the source revision range

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java  view on Meta::CPAN

     * @param callback               the object to receive the log messages
     * @since 1.8
     */
    void getMergeinfoLog(Mergeinfo.LogKind kind, String pathOrUrl,
                         Revision pegRevision, String mergeSourceUrl,
                         Revision srcPegRevision,
                         Revision srcStartRevision, Revision srcEndRevision,
                         boolean discoverChangedPaths,
                         Depth depth, Set<String> revProps,
                         LogMessageCallback callback)
        throws ClientException;

    /**
     * Retrieve either merged or eligible-to-be-merged revisions.
     * @param kind                   kind of revisions to receive
     * @param pathOrUrl              target of merge
     * @param pegRevision            peg rev for pathOrUrl
     * @param mergeSourceUrl         the source of the merge
     * @param srcPegRevision         peg rev for mergeSourceUrl
     * @param discoverChangedPaths   return paths of changed items
     * @param depth                  the depth to recurse to
     * @param revProps               the revprops to retrieve
     * @param callback               the object to receive the log messages
     * @note Behaves like the 1.8 version, with unspecified revision range.
     */
    void getMergeinfoLog(Mergeinfo.LogKind kind, String pathOrUrl,
                         Revision pegRevision, String mergeSourceUrl,
                         Revision srcPegRevision, boolean discoverChangedPaths,
                         Depth depth, Set<String> revProps,
                         LogMessageCallback callback)
        throws ClientException;

    /**
     * Display the differences between two paths
     * @param target1       first path or url
     * @param revision1     first revision
     * @param target2       second path or url
     * @param revision2     second revision
     * @param relativeToDir index path is relative to this path
     * @param outFileName   file name where difference are written
     * @param depth         how deep to traverse into subdirectories
     * @param ignoreAncestry ignore if files are not related
     * @param noDiffDeleted no output on deleted files
     * @param force         diff even on binary files
     * @param copiesAsAdds  if set, copied files will be shown in their
     *                      entirety, not as diffs from their sources
     * @param ignoreProps   don't show property diffs
     * @param propsOnly     show property changes only
     * @param options       additional options for controlling the output
     * @throws ClientException
     * @since 1.8
     */
    void diff(String target1, Revision revision1, String target2,
              Revision revision2, String relativeToDir, OutputStream outStream,
              Depth depth, Collection<String> changelists,
              boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
              boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly,
              DiffOptions options)
            throws ClientException;

    void diff(String target1, Revision revision1, String target2,
              Revision revision2, String relativeToDir, String outFileName,
              Depth depth, Collection<String> changelists,
              boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
              boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly,
              DiffOptions options)
            throws ClientException;

    /**
     * Display the differences between two paths
     * @param target1       first path or url
     * @param revision1     first revision
     * @param target2       second path or url
     * @param revision2     second revision
     * @param relativeToDir index path is relative to this path
     * @param outFileName   file name where difference are written
     * @param depth         how deep to traverse into subdirectories
     * @param ignoreAncestry ignore if files are not related
     * @param noDiffDeleted no output on deleted files
     * @param force         diff even on binary files
     * @param copiesAsAdds  if set, copied files will be shown in their
     *                      entirety, not as diffs from their sources
     * @param ignoreProps   don't show property diffs
     * @param propsOnly     show property changes only
     * @throws ClientException
     */
    void diff(String target1, Revision revision1, String target2,
              Revision revision2, String relativeToDir, OutputStream outStream,
              Depth depth, Collection<String> changelists,
              boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
              boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
            throws ClientException;

    void diff(String target1, Revision revision1, String target2,
              Revision revision2, String relativeToDir, String outFileName,
              Depth depth, Collection<String> changelists,
              boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
              boolean copiesAsAdds)
            throws ClientException;

    /**
     * Display the differences between two paths.
     * @param target        path or url
     * @param pegRevision   revision tointerpret target
     * @param startRevision first Revision to compare
     * @param endRevision   second Revision to compare
     * @param relativeToDir index path is relative to this path
     * @param outFileName   file name where difference are written
     * @param depth         how deep to traverse into subdirectories
     * @param changelists  if non-null, filter paths using changelists
     * @param ignoreAncestry ignore if files are not related
     * @param noDiffDeleted no output on deleted files
     * @param force         diff even on binary files
     * @param copiesAsAdds  if set, copied files will be shown in their
     *                      entirety, not as diffs from their sources
     * @param ignoreProps   don't show property diffs
     * @param propsOnly     show property changes only
     * @param options       additional options for controlling the output
     * @throws ClientException
     * @since 1.8
     */
    void diff(String target, Revision pegRevision, Revision startRevision,
              Revision endRevision, String relativeToDir, OutputStream outStream,
              Depth depth, Collection<String> changelists,
              boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
              boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly,
              DiffOptions options)
            throws ClientException;

    void diff(String target, Revision pegRevision, Revision startRevision,
              Revision endRevision, String relativeToDir, String outFileName,
              Depth depth, Collection<String> changelists,
              boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
              boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly,
              DiffOptions options)
            throws ClientException;

    /**
     * Display the differences between two paths.
     * @param target        path or url
     * @param pegRevision   revision tointerpret target
     * @param startRevision first Revision to compare
     * @param endRevision   second Revision to compare
     * @param relativeToDir index path is relative to this path
     * @param outFileName   file name where difference are written
     * @param depth         how deep to traverse into subdirectories
     * @param changelists  if non-null, filter paths using changelists
     * @param ignoreAncestry ignore if files are not related
     * @param noDiffDeleted no output on deleted files
     * @param force         diff even on binary files
     * @param copiesAsAdds  if set, copied files will be shown in their
     *                      entirety, not as diffs from their sources
     * @param ignoreProps   don't show property diffs
     * @param propsOnly     show property changes only
     * @throws ClientException
     */
    void diff(String target, Revision pegRevision, Revision startRevision,
              Revision endRevision, String relativeToDir,
              OutputStream outStream,
              Depth depth, Collection<String> changelists,
              boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
              boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
            throws ClientException;

    void diff(String target, Revision pegRevision, Revision startRevision,
              Revision endRevision, String relativeToDir, String outFileName,
              Depth depth, Collection<String> changelists,
              boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
              boolean copiesAsAdds)
            throws ClientException;

    /**
     * Produce a diff summary which lists the items changed between
     * path and revision pairs.
     *
     * @param target1 Path or URL.
     * @param revision1 Revision of <code>target1</code>.
     * @param target2 Path or URL.
     * @param revision2 Revision of <code>target2</code>.
     * @param depth how deep to recurse.
     * @param changelists  if non-null, filter paths using changelists
     * @param ignoreAncestry Whether to ignore unrelated files during
     * comparison.  False positives may potentially be reported if
     * this parameter <code>false</code>, since a file might have been
     * modified between two revisions, but still have the same
     * contents.
     * @param receiver As each is difference is found, this callback
     * is invoked with a description of the difference.
     *
     * @throws ClientException
     */
    void diffSummarize(String target1, Revision revision1,
                       String target2, Revision revision2,
                       Depth depth, Collection<String> changelists,
                       boolean ignoreAncestry, DiffSummaryCallback receiver)
            throws ClientException;

    /**
     * Produce a diff summary which lists the items changed between
     * path and revision pairs.
     *
     * @param target Path or URL.
     * @param pegRevision Revision at which to interpret
     * <code>target</code>.  If {@link Revision.Kind#unspecified} or
     * <code>null</code>, behave identically to {@link
     * #diffSummarize(String, Revision, String, Revision, Depth,

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java  view on Meta::CPAN

     * @param depth how deep to recurse.
     * @param changelists  if non-null, filter paths using changelists
     * @param ignoreAncestry Whether to ignore unrelated files during
     * comparison.  False positives may potentially be reported if
     * this parameter <code>false</code>, since a file might have been
     * modified between two revisions, but still have the same
     * contents.
     * @param receiver As each is difference is found, this callback
     * is invoked with a description of the difference.
     *
     * @throws ClientException
     */
    void diffSummarize(String target, Revision pegRevision,
                       Revision startRevision, Revision endRevision,
                       Depth depth, Collection<String> changelists,
                       boolean ignoreAncestry, DiffSummaryCallback receiver)
        throws ClientException;

    /**
     * Retrieves the properties of an item
     *
     * @param path        the path of the item
     * @param revision    the revision of the item
     * @param pegRevision the revision to interpret path
     * @param depth       the depth to recurse into subdirectories
     * @param changelists changelists to filter by
     * @param callback    the callback to use to return the properties
     * @throws ClientException
     */
    void properties(String path, Revision revision, Revision pegRevision,
                    Depth depth, Collection<String> changelists,
                    ProplistCallback callback)
            throws ClientException;

    /**
     * Retrieves the properties of an item, including inherited properties.
     *
     * @param path        the path of the item
     * @param revision    the revision of the item
     * @param pegRevision the revision to interpret path
     * @param depth       the depth to recurse into subdirectories
     * @param changelists changelists to filter by
     * @param callback    the callback to use to return the properties
     * @throws ClientException
     * @since 1.8
     */
    void properties(String path, Revision revision, Revision pegRevision,
                    Depth depth, Collection<String> changelists,
                    InheritedProplistCallback callback)
            throws ClientException;

    /**
     * Sets one property of an item with a String value
     *
     * @param paths   paths of the items
     * @param name    name of the property
     * @param value   new value of the property. Set value to <code>
     * null</code> to delete a property
     * @param depth   the depth to recurse into subdirectories
     * @param changelists changelists to filter by
     * @param force   do not check if the value is valid
     * @param revpropTable A string-to-string mapping of revision properties
     *                     to values which will be set if this operation
     *                     results in a commit.
     * @throws ClientException
     */
    void propertySetLocal(Set<String> paths, String name, byte[] value,
                          Depth depth, Collection<String> changelists,
                          boolean force)
            throws ClientException;

    void propertySetRemote(String path, long baseRev, String name,
                           byte[] value, CommitMessageCallback handler,
                           boolean force, Map<String, String> revpropTable,
                           CommitCallback callback)
            throws ClientException;

    /**
     * Retrieve one revsision property of one item
     * @param path      path of the item
     * @param name      name of the property
     * @param rev       revision to retrieve
     * @return the Property
     * @throws ClientException
     */
    byte[] revProperty(String path, String name, Revision rev)
            throws ClientException;

    /**
     * Retrieve all revsision properties of one item
     * @param path      path of the item
     * @param rev       revision to retrieve
     * @return the Properties
     * @throws ClientException
     */
    Map<String, byte[]> revProperties(String path, Revision rev)
            throws ClientException;

    /**
     * set one revsision property of one item
     * @param path      path of the item
     * @param name      name of the property
     * @param rev       revision to retrieve
     * @param value     value of the property
     * @param originalValue the original value of the property.
     * @param force     use force to set
     * @throws ClientException
     */
    void setRevProperty(String path, String name, Revision rev, String value,
                        String originalValue, boolean force)
            throws ClientException;

    /**
     * Retrieve one property of one item
     * @param path      path of the item
     * @param name      name of property
     * @param revision  revision of the item
     * @param pegRevision the revision to interpret path
     * @return the Property
     * @throws ClientException
     */
    byte[] propertyGet(String path, String name, Revision revision,
                       Revision pegRevision, Collection<String> changelists)
            throws ClientException;

    byte[] propertyGet(String path, String name, Revision revision,
                       Revision pegRevision)
            throws ClientException;

    /**
     * Retrieve the content of a file
     * @param path      the path of the file
     * @param revision  the revision to retrieve
     * @param pegRevision the revision to interpret path
     * @return  the content as byte array
     * @throws ClientException
     */
    byte[] fileContent(String path, Revision revision, Revision pegRevision)
            throws ClientException;

    /**
     * Write the file's content to the specified output stream.  If
     * you need an InputStream, use a
     * PipedInputStream/PipedOutputStream combination.
     *
     * @param path        the path of the file
     * @param revision    the revision to retrieve
     * @param pegRevision the revision at which to interpret the path
     * @param stream      the stream to write the file's content to
     * @throws ClientException
     * @see java.io.PipedOutputStream
     * @see java.io.PipedInputStream
     */
    void streamFileContent(String path, Revision revision, Revision pegRevision,
                           OutputStream stream)
        throws ClientException;

    /**
     * Rewrite the url's in the working copy
     * @param from      old url
     * @param to        new url
     * @param path      working copy path
     * @param ignoreExternals if externals are ignored during relocate
     * @throws ClientException
     */
    void relocate(String from, String to, String path, boolean ignoreExternals)
            throws ClientException;

    /**
     * Retrieve the content together with the author, the revision and the date
     * of the last change of each line
     * @param path          the path
     * @param pegRevision   the revision to interpret the path
     * @param revisionStart the first revision to show
     * @param revisionEnd   the last revision to show
     * @param ignoreMimeType whether or not to ignore the mime-type
     * @param includeMergedRevisions whether or not to include extra merge
     *                      information
     * @param callback      callback to receive the file content and the other
     *                      information
     * @throws ClientException
     */
    void blame(String path, Revision pegRevision, Revision revisionStart,
               Revision revisionEnd, boolean ignoreMimeType,
               boolean includeMergedRevisions,
               BlameCallback callback) throws ClientException;

    /**
     * Set directory for the configuration information, taking the
     * usual steps to ensure that Subversion's config file templates
     * exist in the specified location..  On Windows, setting a
     * non-<code>null</code> value will override lookup of
     * configuration in the registry.
     * @param configDir Path of the directory, or <code>null</code>
     * for the platform's default.
     * @throws ClientException
     */
    void setConfigDirectory(String configDir) throws ClientException;

    /**
     * Get the configuration directory
     * @return  the directory
     * @throws ClientException
     */
    String getConfigDirectory() throws ClientException;

    /**
     * cancel the active operation
     * @throws ClientException
     */
    void cancelOperation() throws ClientException;

    /**
     * Add paths to a changelist
     * @param paths       paths to add to the changelist
     * @param changelist  changelist name
     * @param depth       the depth to recurse
     * @param changelists changelists to filter by
     */
    void addToChangelist(Set<String> paths, String changelist, Depth depth,
                         Collection<String> changelists)
            throws ClientException;

    /**
     * Remove paths from a changelist
     * @param paths       paths to remove from the changelist
     * @param depth       the depth to recurse
     * @param changelists changelists to filter by
     */
    void removeFromChangelists(Set<String> paths, Depth depth,
                               Collection<String> changelists)
            throws ClientException;

    /**
     * Recursively get the paths which belong to a changelist
     * @param rootPath    the wc path under which to check
     * @param changelists the changelists to look under
     * @param depth       the depth to recurse
     * @param callback    the callback to return the changelists through
     */
    void getChangelists(String rootPath, Collection<String> changelists,
                        Depth depth, ChangelistCallback callback)
            throws ClientException;

    /**
     * Lock a working copy item
     * @param path  path of the item
     * @param comment
     * @param force break an existing lock
     * @throws ClientException
     */
    void lock(Set<String> path, String comment, boolean force)
            throws ClientException;

    /**
     * Unlock a working copy item
     * @param path  path of the item
     * @param force break an existing lock
     * @throws ClientException
     */
    void unlock(Set<String> path, boolean force)
            throws ClientException;

    /**
     * Retrieve information about repository or working copy items.
     * @param pathOrUrl     the path or the url of the item
     * @param revision      the revision of the item to return
     * @param pegRevision   the revision to interpret pathOrUrl
     * @param depth         the depth to recurse
     * @param changelists   if non-null, filter paths using changelists
     * @param callback      a callback to receive the infos retrieved
     */
    void info2(String pathOrUrl, Revision revision, Revision pegRevision,
               Depth depth, Collection<String> changelists,
               InfoCallback callback)
        throws ClientException;

    /**
     * Produce a compact "version number" for a working copy
     * @param path          path of the working copy
     * @param trailUrl      to detect switches of the whole working copy
     * @param lastChanged   last changed rather than current revisions
     * @return      the compact "version number"
     * @throws ClientException
     */
    String getVersionInfo(String path, String trailUrl, boolean lastChanged)
            throws ClientException;

    /**
     * Recursively upgrade a working copy to a new metadata storage format.
     * @param path                  path of the working copy
     * @throws ClientException
     */
    void upgrade(String path)
            throws ClientException;

    /**
     * Apply a unidiff patch.
     * @param patchPath        the path of the patch
     * @param targetPath       the path to be patched
     * @param dryRun           whether to actually modify the local content
     * @param stripCount       how many leading path components should be removed
     * @param reverse          whether to reverse the patch
     * @param ignoreWhitespace whether to ignore whitespace
     * @param removeTempfiles  whether to remove temp files
     * @param callback         a handler to receive information as files are patched
     * @throws ClientException
     */
    void patch(String patchPath, String targetPath, boolean dryRun,
               int stripCount, boolean reverse, boolean ignoreWhitespace,
               boolean removeTempfiles, PatchCallback callback)
            throws ClientException;
}

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java  view on Meta::CPAN

	public abstract Version getVersion();

	/**
	 * create a subversion repository.
	 * @param path                  the path where the repository will been
	 *                              created.
	 * @param disableFsyncCommit    disable to fsync at the commit (BDB).
	 * @param keepLog               keep the log files (BDB).
	 * @param configPath            optional path for user configuration files.
	 * @param fstype                the type of the filesystem (BDB or FSFS)
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void create(File path, boolean disableFsyncCommit,
			boolean keepLog, File configPath, String fstype)
			throws ClientException;

	/**
	 * deltify the revisions in the repository
	 * @param path              the path to the repository
	 * @param start             start revision
	 * @param end               end revision
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void deltify(File path, Revision start, Revision end)
			throws ClientException;

	/**
	 * dump the data in a repository
	 * @param path              the path to the repository
	 * @param dataOut           the data will be outputed here
	 * @param start             the first revision to be dumped
	 * @param end               the last revision to be dumped
	 * @param incremental       the dump will be incremantal
	 * @param useDeltas         the dump will contain deltas between nodes
     * @param callback          the callback to recieve notifications
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void dump(File path, OutputStream dataOut,
                Revision start, Revision end, boolean incremental,
                boolean useDeltas, ReposNotifyCallback callback)
			throws ClientException;

	/**
	 * make a hot copy of the repository
	 * @param path              the path to the source repository
	 * @param targetPath        the path to the target repository
	 * @param cleanLogs         clean the unused log files in the source
	 *                          repository
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void hotcopy(File path, File targetPath,
			boolean cleanLogs, boolean incremental) throws ClientException;

	public abstract void hotcopy(File path, File targetPath,
			boolean cleanLogs) throws ClientException;

	/**
	 * list all logfiles (BDB) in use or not)
	 * @param path              the path to the repository
	 * @param receiver          interface to receive the logfile names
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void listDBLogs(File path, MessageReceiver receiver)
			throws ClientException;

	/**
	 * list unused logfiles
	 * @param path              the path to the repository
	 * @param receiver          interface to receive the logfile names
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void listUnusedDBLogs(File path, MessageReceiver receiver)
			throws ClientException;


	/**
	 * load the data of a dump into a repository
	 * @param path              the path to the repository
	 * @param dataInput         the data input source
         * @param start             the first revision to load
         * @param end               the last revision to load
	 * @param ignoreUUID        ignore any UUID found in the input stream
	 * @param forceUUID         set the repository UUID to any found in the
	 *                          stream
	 * @param usePreCommitHook  use the pre-commit hook when processing commits
	 * @param usePostCommitHook use the post-commit hook when processing commits
	 * @param relativePath      the directory in the repository, where the data
	 *                          in put optional.
	 * @param callback          the target for processing messages
	 * @throws ClientException  throw in case of problem
         * @since 1.8
	 */
	public abstract void load(File path, InputStream dataInput,
                                  Revision start, Revision end,
                                  boolean ignoreUUID, boolean forceUUID,
                                  boolean usePreCommitHook,
                                  boolean usePostCommitHook,
                                  String relativePath,
                                  ReposNotifyCallback callback)
        throws ClientException;

	/**
	 * load the data of a dump into a repository
	 * @param path              the path to the repository
	 * @param dataInput         the data input source
	 * @param ignoreUUID        ignore any UUID found in the input stream
	 * @param forceUUID         set the repository UUID to any found in the
	 *                          stream
	 * @param usePreCommitHook  use the pre-commit hook when processing commits
	 * @param usePostCommitHook use the post-commit hook when processing commits
	 * @param relativePath      the directory in the repository, where the data
	 *                          in put optional.
	 * @param callback          the target for processing messages
	 * @throws ClientException  throw in case of problem
         * @note behaves like the 1.8 vesion with the revision
         *       parameters set to Revision.START and Revision.HEAD.
	 */
	public abstract void load(File path, InputStream dataInput,
			boolean ignoreUUID, boolean forceUUID, boolean usePreCommitHook,
            boolean usePostCommitHook, String relativePath,
            ReposNotifyCallback callback)
        throws ClientException;

	/**
	 * list all open transactions in a repository
	 * @param path              the path to the repository
	 * @param receiver          receives one transaction name per call
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void lstxns(File path, MessageReceiver receiver)
			throws ClientException;

	/**
	 * recover the filesystem backend of a repository
	 * @param path              the path to the repository
         * @return youngest revision
	 * @throws ClientException  throw in case of problem
	 */
	public abstract long recover(File path, ReposNotifyCallback callback)
            throws ClientException;

	/**
	 * Take an exclusive lock on each of the listed repositories
	 * to prevent commits; then, while holding all the locks, call
	 * the action.invoke().
	 *
	 * The repositories may or may not be readable by Subversion
	 * while frozen, depending on implementation details of the
	 * repository's filesystem backend.
	 *
	 * Repositories are locked in the listed order.
	 * @param action     describes the action to perform
	 * @param paths	     the set of repository paths
	 * @throws ClientException
         * @since 1.8
	 */
	public abstract void freeze(ReposFreezeAction action,
				    File... paths)
	    throws ClientException;

	/**
	 * remove open transaction in a repository
	 * @param path              the path to the repository
	 * @param transactions      the transactions to be removed
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void rmtxns(File path, String[] transactions)
			throws ClientException;

	/**
	 * Change the value of the revision property <code>propName</code>
	 * to <code>propValue</code>.  By default, does not run
	 * pre-/post-revprop-change hook scripts.
	 *
	 * @param path The path to the repository.
	 * @param rev The revision for which to change a property value.
	 * @param propName The name of the property to change.
	 * @param propValue The new value to set for the property.
	 * @param usePreRevPropChangeHook Whether to run the
	 * <i>pre-revprop-change</i> hook script.
	 * @param usePostRevPropChangeHook Whether to run the
	 * <i>post-revprop-change</i> hook script.
	 * @throws SubversionException If a problem occurs.
	 */
	public abstract void setRevProp(File path, Revision rev, String propName,
			String propValue, boolean usePreRevPropChangeHook,
			boolean usePostRevPropChangeHook) throws SubversionException;

	/**
	 * Verify the repository at <code>path</code> between revisions
	 * <code>start</code> and <code>end</code>.
	 *
	 * @param path              the path to the repository
	 * @param start             the first revision
	 * @param end               the last revision
     * @param callback          the callback to recieve notifications
	 * @throws ClientException If an error occurred.
	 */
	public abstract void verify(File path, Revision start, Revision end,
                ReposNotifyCallback callback)
            throws ClientException;

	/**
	 * list all locks in the repository
	 * @param path              the path to the repository
     * @param depth             the depth to recurse
	 * @throws ClientException  throw in case of problem
	 */
	public abstract Set<Lock> lslocks(File path, Depth depth)
            throws ClientException;

	/**
	 * remove multiple locks from the repository
	 * @param path              the path to the repository
	 * @param locks             the name of the locked items
	 * @throws ClientException  throw in case of problem
	 */
	public abstract void rmlocks(File path, String[] locks)
			throws ClientException;

    /**
     * upgrade the repository format
     * @param path              the path to the repository
     * @param callback          for notification
	 * @throws ClientException  throw in case of problem
     */
    public abstract void upgrade(File path, ReposNotifyCallback callback)
			throws ClientException;

    /**
     * pack the repository
     * @param path              the path to the repository
     * @param callback          for notification
	 * @throws ClientException  throw in case of problem
     */
    public abstract void pack(File path, ReposNotifyCallback callback)
			throws ClientException;

    /**
     * cancel the active operation
     * @throws ClientException
     */
    void cancelOperation() throws ClientException;
}

src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIError.java  view on Meta::CPAN

 *    KIND, either express or implied.  See the License for the
 *    specific language governing permissions and limitations
 *    under the License.
 * ====================================================================
 * @endcopyright
 */

package org.apache.subversion.javahl;

/**
 * This error is thrown by error in the native library.
 */
public class JNIError extends Error
{
    // Update the serialVersionUID when there is a incompatible change
    // made to this class.  See any of the following, depending upon
    // the Java release.
    // http://java.sun.com/j2se/1.3/docs/guide/serialization/spec/version.doc7.html
    // http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf
    // http://java.sun.com/j2se/1.5.0/docs/guide/serialization/spec/version.html#6678
    // http://java.sun.com/javase/6/docs/platform/serialization/spec/version.html#6678



( run in 0.578 second using v1.01-cache-2.11-cpan-496ff517765 )