You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/12/11 01:16:08 UTC

svn commit: r1044548 [2/39] - in /subversion/branches/ignore-mergeinfo: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ build/win32/ contrib/client-side/ contrib/hook-scripts/ contrib/server-side/ notes/api-errata/ notes/api-erra...

Modified: subversion/branches/ignore-mergeinfo/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/build/run_tests.py?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/build/run_tests.py (original)
+++ subversion/branches/ignore-mergeinfo/build/run_tests.py Sat Dec 11 00:15:55 2010
@@ -42,9 +42,9 @@ separated list of test numbers; the defa
 '''
 
 # A few useful constants
-LINE_LENGTH = 40
+LINE_LENGTH = 45
 
-import os, re, subprocess, sys
+import os, re, subprocess, sys, imp
 from datetime import datetime
 
 import getopt
@@ -237,43 +237,14 @@ class TestHarness:
       self.log.close()
       self.log = None
 
-  def _run_test(self, prog, test_nr, total_tests):
-    "Run a single test. Return the test's exit code."
-
-    if self.log:
-      log = self.log
-    else:
-      log = sys.stdout
-
-    test_nums = None
-    if '#' in prog:
-      prog, test_nums = prog.split('#')
-
+  def _run_c_test(self, prog, test_nums, dot_count):
+    'Run a c test, escaping parameters as required.'
     progdir, progbase = os.path.split(prog)
-    if self.log:
-      # Using write here because we don't want even a trailing space
-      test_info = '%s [%d/%d]' % (progbase, test_nr + 1, total_tests)
-      sys.stdout.write('Running tests in %s' % (test_info, ))
-      sys.stdout.write('.'*(LINE_LENGTH - len(test_info)))
-      sys.stdout.flush()
 
-    log.write('START: %s\n' % progbase)
-    log.flush()
+    sys.stdout.write('.' * dot_count)
+    sys.stdout.flush()
 
-    start_time = datetime.now()
-    if progbase[-3:] == '.py':
-      progname = sys.executable
-      cmdline = [progname,
-                 os.path.join(self.srcdir, prog)]
-      if self.base_url is not None:
-        cmdline.append('--url=' + self.base_url)
-      if self.enable_sasl is not None:
-        cmdline.append('--enable-sasl')
-      if self.parallel is not None:
-        cmdline.append('--parallel')
-      if self.config_file is not None:
-        cmdline.append('--config-file=' + self.config_file)
-    elif os.access(prog, os.X_OK):
+    if os.access(progbase, os.X_OK):
       progname = './' + progbase
       cmdline = [progname,
                  '--srcdir=' + os.path.join(self.srcdir, progdir)]
@@ -307,10 +278,134 @@ class TestHarness:
       test_nums = test_nums.split(',')
       cmdline.extend(test_nums)
 
+    return self._run_prog(progname, cmdline)
+
+  def _run_py_test(self, prog, test_nums, dot_count):
+    'Run a python test, passing parameters as needed.'
+    progdir, progbase = os.path.split(prog)
+
+    old_path = sys.path[:]
+    sys.path = [progdir] + sys.path
+
+    try:
+      prog_mod = imp.load_module(progbase[:-3], open(prog, 'r'), prog,
+                                 ('.py', 'U', imp.PY_SOURCE))
+    except:
+      print('Don\'t know what to do about ' + progbase)
+      raise
+
+    import svntest.main
+
+    # set up our options
+    svntest.main.create_default_options()
+    if self.base_url is not None:
+      svntest.main.options.test_area_url = self.base_url
+    if self.enable_sasl is not None:
+      svntest.main.options.enable_sasl = True
+    if self.parallel is not None:
+      svntest.main.options.parallel = svntest.main.default_num_threads
+    if self.config_file is not None:
+      svntest.main.options.config_file = self.config_file
+    if self.verbose is not None:
+      svntest.main.options.verbose = True
+    if self.cleanup is not None:
+      svntest.main.options.cleanup = True
+    if self.fs_type is not None:
+      svntest.main.options.fs_type = self.fs_type
+    if self.http_library is not None:
+      svntest.main.options.http_library = self.http_library
+    if self.server_minor_version is not None:
+      svntest.main.options.server_minor_version = self.server_minor_version
+    if self.list_tests is not None:
+      svntest.main.options.list_tests = True
+    if self.svn_bin is not None:
+      svntest.main.options.svn_bin = self.svn_bin
+    if self.fsfs_sharding is not None:
+      svntest.main.options.fsfs_sharding = self.fsfs_sharding
+    if self.fsfs_packing is not None:
+      svntest.main.options.fsfs_packing = self.fsfs_packing
+
+    svntest.main.options.srcdir = self.srcdir
+
+    # setup the output pipes
+    if self.log:
+      sys.stdout.flush()
+      sys.stderr.flush()
+      self.log.flush()
+      old_stdout = os.dup(1)
+      old_stderr = os.dup(2)
+      os.dup2(self.log.fileno(), 1)
+      os.dup2(self.log.fileno(), 2)
+
+    # This has to be class-scoped for use in the progress_func()
+    self.dots_written = 0
+    def progress_func(completed, total):
+      dots = (completed * dot_count) / total
+
+      dots_to_write = dots - self.dots_written
+      if self.log:
+        os.write(old_stdout, '.' * dots_to_write)
+
+      self.dots_written = dots
+
+    serial_only = hasattr(prog_mod, 'serial_only') and prog_mod.serial_only
+
+    # run the tests
+    svntest.testcase.TextColors.disable()
+    failed = svntest.main.execute_tests(prog_mod.test_list,
+                                        serial_only=serial_only,
+                                        test_name=progbase,
+                                        progress_func=progress_func)
+
+    # restore some values
+    sys.path = old_path
+    if self.log:
+      sys.stdout.flush()
+      sys.stderr.flush()
+      os.dup2(old_stdout, 1)
+      os.dup2(old_stderr, 2)
+      os.close(old_stdout)
+      os.close(old_stderr)
+
+    return failed
+
+  def _run_test(self, prog, test_nr, total_tests):
+    "Run a single test. Return the test's exit code."
+
+    if self.log:
+      log = self.log
+    else:
+      log = sys.stdout
+
+    test_nums = None
+    if '#' in prog:
+      prog, test_nums = prog.split('#')
+
+    progdir, progbase = os.path.split(prog)
+    if self.log:
+      # Using write here because we don't want even a trailing space
+      test_info = '%s [%d/%d]' % (progbase, test_nr + 1, total_tests)
+      sys.stdout.write('Running tests in %s' % (test_info, ))
+      sys.stdout.flush()
+    else:
+      # ### Hack for --log-to-stdout to work (but not print any dots).
+      test_info = ''
+
+    log.write('START: %s\n' % progbase)
+    log.flush()
+
+    start_time = datetime.now()
+
+    progabs = os.path.abspath(os.path.join(self.srcdir, prog))
     old_cwd = os.getcwd()
     try:
       os.chdir(progdir)
-      failed = self._run_prog(progname, cmdline)
+      if progbase[-3:] == '.py':
+        failed = self._run_py_test(progabs, test_nums,
+                                   (LINE_LENGTH - len(test_info)))
+      else:
+        failed = self._run_c_test(prog, test_nums,
+                                  (LINE_LENGTH - len(test_info)))
     except:
       os.chdir(old_cwd)
       raise

Modified: subversion/branches/ignore-mergeinfo/build/transform_libtool_scripts.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/build/transform_libtool_scripts.sh?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/build/transform_libtool_scripts.sh (original)
+++ subversion/branches/ignore-mergeinfo/build/transform_libtool_scripts.sh Sat Dec 11 00:15:55 2010
@@ -21,6 +21,7 @@
 #
 
 # Dependencies of libraries
+# TODO: generate from build.conf
 subr="subr"
 auth_gnome_keyring="auth_gnome_keyring $subr"
 auth_kwallet="auth_kwallet $subr"
@@ -39,11 +40,9 @@ ra="ra $delta $ra_local $ra_neon $ra_ser
 wc="wc $delta $diff $subr"
 client="client $delta $diff $ra $subr $wc"
 
-# Variable 'libraries' containing names of variables corresponding to libraries
-libraries="auth_gnome_keyring auth_kwallet client delta diff fs fs_base fs_fs fs_util ra ra_local ra_neon ra_serf ra_svn repos subr wc"
-
-for library in $libraries; do
-  # Delete duplicates in dependencies of libraries
+# Delete duplicates in dependencies of libraries
+ls subversion | grep libsvn_ | while read library_dir; do
+  library=`basename $library_dir | sed s/libsvn_//`
   library_dependencies="$(echo -n $(for x in $(eval echo "\$$library"); do echo $x; done | sort -u))"
   eval "$library=\$library_dependencies"
 done
@@ -57,17 +56,20 @@ svnserve="$delta $fs $ra_svn $repos $sub
 svnsync="$auth_gnome_keyring $auth_kwallet $delta $ra $subr"
 svnversion="$subr $wc"
 entries_dump="$subr $wc"
+atomic_ra_revprop_change="$subr $ra"
 
 # Variable 'executables' containing names of variables corresponding to executables
-executables="svn svnadmin svndumpfilter svnlook svnserve svnsync svnversion entries_dump"
+executables="svn svnadmin svndumpfilter svnlook svnserve svnsync svnversion entries_dump atomic_ra_revprop_change"
 
 for executable in $executables; do
   # Set variables containing paths of executables
-  if [ "$executable" != entries_dump ]; then
-    eval "${executable}_path=subversion/$executable/$executable"
-  else
+  eval "${executable}_path=subversion/$executable/$executable"
+  if [ "$executable" = entries_dump ]; then
     eval "${executable}_path=subversion/tests/cmdline/entries-dump"
   fi
+  if [ "$executable" = atomic_ra_revprop_change ]; then
+    eval "${executable}_path=subversion/tests/cmdline/atomic-ra-revprop-change"
+  fi
   # Delete duplicates in dependencies of executables
   executable_dependencies="$(echo -n $(for x in $(eval echo "\$$executable"); do echo $x; done | sort -u))"
   eval "$executable=\$executable_dependencies"

Propchange: subversion/branches/ignore-mergeinfo/build/win32/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sat Dec 11 00:15:55 2010
@@ -9,3 +9,4 @@ msvc-dsp
 *.vcxproj
 vcnet-vcproj
 *.user
+*.log

Modified: subversion/branches/ignore-mergeinfo/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/configure.ac?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/configure.ac (original)
+++ subversion/branches/ignore-mergeinfo/configure.ac Sat Dec 11 00:15:55 2010
@@ -376,10 +376,10 @@ if test -n "`echo "$svn_lib_expat" | $EG
   old_LIBS="$LIBS"
   CPPFLAGS="$CPPFLAGS $SVN_XML_INCLUDES"
   LIBS="$LIBS $SVN_XML_LIBS"
-  AC_LINK_IFELSE([
+  AC_LINK_IFELSE([AC_LANG_SOURCE([[
 #include <expat.h>
 int main()
-{XML_ParserCreate(NULL);}], svn_lib_expat="yes", svn_lib_expat="no")
+{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no")
   LIBS="$old_LIBS"
   if test "$svn_lib_expat" = "yes"; then
     AC_MSG_RESULT([yes])
@@ -390,10 +390,10 @@ int main()
     if test "$enable_all_static" != "yes"; then
       SVN_APRUTIL_LIBS="$SVN_APRUTIL_LIBS `$apu_config --libs`"
     fi
-    AC_COMPILE_IFELSE([
+    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 #include <expat.h>
 int main()
-{XML_ParserCreate(NULL);}], svn_lib_expat="yes", svn_lib_expat="no")
+{XML_ParserCreate(NULL);}]])], svn_lib_expat="yes", svn_lib_expat="no")
     if test "$svn_lib_expat" = "yes"; then
       AC_MSG_RESULT([yes])
       AC_MSG_WARN([Expat found amongst libraries used by APR-Util, but Subversion libraries might be needlessly linked against additional unused libraries. It can be avoided by specifying exact location of Expat in argument of --with-expat option.])
@@ -500,11 +500,11 @@ dnl APR_HAS_DSO -------------------
 AC_MSG_CHECKING([whether APR has support for DSOs])
 old_CPPFLAGS="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
-AC_PREPROC_IFELSE([
+AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
 #include <apr.h>
 #if !APR_HAS_DSO
 #error
-#endif],
+#endif]])],
   APR_HAS_DSO="yes"
   AC_MSG_RESULT([yes]),
   APR_HAS_DSO="no"
@@ -532,10 +532,10 @@ if test -n "$PKG_CONFIG"; then
     CPPFLAGS="$CPPFLAGS $DBUS_CPPFLAGS"
     LIBS="$LIBS $DBUS_LIBS"
     AC_MSG_CHECKING([for D-Bus])
-    AC_LINK_IFELSE([
+    AC_LINK_IFELSE([AC_LANG_SOURCE([[
 #include <dbus/dbus.h>
 int main()
-{dbus_bus_get(DBUS_BUS_SESSION, NULL);}], HAVE_DBUS="yes", HAVE_DBUS="no")
+{dbus_bus_get(DBUS_BUS_SESSION, NULL);}]])], HAVE_DBUS="yes", HAVE_DBUS="no")
     if test "$HAVE_DBUS" = "yes"; then
       AC_MSG_RESULT([yes])
     else
@@ -702,7 +702,7 @@ dnl Build and install rules ------------
 INSTALL_STATIC_RULES="install-bin install-docs"
 INSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static"
 INSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE"
-BUILD_RULES="fsmod-lib ramod-lib lib bin test $BUILD_APACHE_RULE"
+BUILD_RULES="fsmod-lib ramod-lib lib bin test $BUILD_APACHE_RULE tools"
 
 if test "$svn_lib_berkeley_db" = "yes"; then
   BUILD_RULES="$BUILD_RULES bdb-lib bdb-test"
@@ -777,12 +777,28 @@ dnl Process some configuration options -
 AC_ARG_WITH(ssl,
 AS_HELP_STRING([--with-ssl],
                [This option does NOT affect the Subversion build process in any
-                way. It enables OpenSSL support in the Neon library. If and
-                only if you are building Neon as an integrated part of the
-                Subversion build process, rather than linking to an already
-                installed version of Neon, you probably want to pass this
-                option so that Neon (and so indirectly, Subversion) will be
-                capable of https:// access.]),
+                way. It enables OpenSSL support in the Neon HTTP client
+                library. If and only if you are building Neon as an integrated
+                part of the Subversion build process, rather than linking to
+                an already installed version of Neon, you probably want to pass
+                this option so that Neon (and so indirectly, Subversion) will
+                be capable of https:// access via that library. (Note that
+                Subversion may also or alternatively be configured to use
+                the Serf library for http:// and https:// access; see the
+                --with-serf and --with-openssl options.)]),
+[])
+
+AC_ARG_WITH(openssl,
+AS_HELP_STRING([--with-openssl],
+               [This option does NOT affect the Subversion build process in any
+                way. It tells an integrated Serf HTTP client library build
+                process where to locate the OpenSSL library when (and only when)
+                building Serf as an integrated part of the Subversion build
+                process. When linking to a previously installed version of Serf
+                instead, you do not need to use this option. (Note that
+                Subversion may also or alternatively be configured to use the
+                Neon library for http:// and https:// access; see the
+                --with-neon and --with-ssl options.)]),
 [])
 
 AC_ARG_ENABLE(debug,
@@ -826,13 +842,12 @@ if test "$enable_disallowing_of_undefine
   AC_MSG_CHECKING([for -Wl,--no-undefined])
   old_LDFLAGS="$LDFLAGS"
   LDFLAGS="$LDFLAGS -Wl,--no-undefined"
-  AC_LINK_IFELSE([int main(){;}], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"])
+  AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(){;}]])], [svn_wl_no_undefined="yes"], [svn_wl_no_undefined="no"])
   LDFLAGS="$old_LDFLAGS"
-  libraries="auth_gnome_keyring auth_kwallet client delta diff fs fs_base fs_fs fs_util ra ra_local ra_neon ra_serf ra_svn repos subr wc"
   if test "$svn_wl_no_undefined" = "yes"; then
     AC_MSG_RESULT([yes])
-    for library in $libraries; do
-      eval "libsvn_${library}_LDFLAGS=-Wl,--no-undefined"
+    ls "$abs_srcdir"/subversion | grep libsvn_ | while read library_dir; do
+      eval "`basename $library_dir`_LDFLAGS=-Wl,--no-undefined"
     done
   else
     AC_MSG_RESULT([no])
@@ -1025,7 +1040,7 @@ SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
 
 AC_PATH_PROG(PERL, perl, none)
 
-AC_PATH_PROG(RUBY, ruby, none)
+AC_PATH_PROGS(RUBY, ruby ruby1.8, none)
 if test "$RUBY" != "none"; then
   if "$RUBY" -r mkmf -e 'exit(have_func("rb_hash_foreach") ? 0 : 1)'; then
     AC_PATH_PROG(RDOC, rdoc, none)
@@ -1241,7 +1256,9 @@ AC_CONFIG_FILES([Makefile])
 SVN_CONFIG_SCRIPT(tools/backup/hot-backup.py)
 SVN_CONFIG_SCRIPT(tools/hook-scripts/commit-access-control.pl)
 SVN_CONFIG_SCRIPT(subversion/bindings/swig/perl/native/Makefile.PL)
-SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
+if test -e packages/solaris/pkginfo.in; then
+  SVN_CONFIG_SCRIPT(packages/solaris/pkginfo)
+fi
 AC_SUBST(SVN_CONFIG_SCRIPT_FILES)
 
 AC_OUTPUT

Modified: subversion/branches/ignore-mergeinfo/contrib/client-side/svn_apply_autoprops.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/contrib/client-side/svn_apply_autoprops.py?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/contrib/client-side/svn_apply_autoprops.py (original)
+++ subversion/branches/ignore-mergeinfo/contrib/client-side/svn_apply_autoprops.py Sat Dec 11 00:15:55 2010
@@ -124,6 +124,8 @@ def filter_walk(autoprop_lines, dirname,
     prop_list = autoprops_line[1]
 
     matching_filenames = fnmatch.filter(filenames, fnmatch_str)
+    matching_filenames = [f for f in matching_filenames \
+      if not os.path.islink(os.path.join(dirname, f))]
     if not matching_filenames:
       continue
 

Modified: subversion/branches/ignore-mergeinfo/contrib/server-side/fsfsverify.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/contrib/server-side/fsfsverify.py?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/contrib/server-side/fsfsverify.py (original)
+++ subversion/branches/ignore-mergeinfo/contrib/server-side/fsfsverify.py Sat Dec 11 00:15:55 2010
@@ -20,6 +20,13 @@ import optparse
 import sys
 import re
 
+try:
+    import hashlib
+    md5_new = hashlib.md5
+except ImportError:
+    import md5
+    md5_new = md5.new
+
 
 # A handy constant for refering to the NULL digest (one that
 # matches every digest).
@@ -70,6 +77,10 @@ class NoMoreData(FsfsVerifyException):
   pass
 
 
+class CmdlineError(FsfsVerifyException):
+  pass
+
+
 LOG_INSTRUCTIONS = 1
 LOG_WINDOWS = 2
 LOG_SVNDIFF = 4
@@ -350,8 +361,8 @@ class Window(object):
           self.isDataCompressed = True
       except Exception, e:
         new_e = InvalidCompressedStream(
-          "Invalid compressed data stream at offset %d (%s)" % (offset,
-                                                                str(e)),
+          "Invalid compressed data stream at offset %d (%s, %s)\n" % (
+              offset, str(e), repr(self)),
           offset)
         new_e.windowOffset = self.windowOffset
         raise new_e
@@ -522,7 +533,7 @@ class Rep(object):
     self.length = int(length)
     self.size = int(size)
 
-    self.digest = digest
+    self.digest = digest.strip()
     self.currentRev = currentRev
 
     self.contentType = contentType
@@ -561,16 +572,14 @@ class Rep(object):
                                                       self.contentType)
 
     if header == 'DELTA':
-      # Consume the rest of the DELTA header
-      while f.read(1) != '\n':
-        pass
-
+      line = f.readline()
+      digest = None
+      
       # This should be the start of the svndiff stream
       actual_start = f.tell()
       try:
         svndiff = Svndiff(f, self.length)
         svndiff.verify()
-        digest = None
       except Exception, e:
         e.rep = self
         e.noderev = self.noderev
@@ -582,8 +591,7 @@ class Rep(object):
       if f.read(1) != '\n':
         raise DataCorrupt, "Expected a '\\n' after PLAIN"
 
-      import md5
-      m = md5.new()
+      m = md5_new()
       m.update(f.read(self.length))
 
       if self.digest and self.digest != NULL_DIGEST \
@@ -592,15 +600,19 @@ class Rep(object):
           "PLAIN data is corrupted.  Expected digest '%s', computed '%s'." % (
             self.digest, m.hexdigest())
 
-      if f.read(7) != 'ENDREP\n':
-        raise DataCorrupt, "Terminating ENDREP missing!"
+      buf = f.read(6)
+      if buf != 'ENDREP':
+        raise DataCorrupt, "Terminating ENDREP missing! %r, %r" % (buf, self)
+        pass
 
 
 class TextRep(Rep):
   def __init__(self, rev, offset, length, size, digest,
-               contentType, currentRev, noderev):
+               contentType, currentRev, noderev, sha1=None, uniquifier=None):
     super(TextRep,self).__init__('text', rev, offset, length, size,
                                  digest, contentType, currentRev, noderev)
+    self.sha1 = None
+    self.uniquifier = None
 
 
 class PropRep(Rep):
@@ -650,6 +662,7 @@ class NodeRev(object):
     self.nodeOffset = f.tell()
 
     while True:
+      currentOffset = f.tell()
       line = f.readline()
       if line == '':
         raise IOError, "Unexpected end of file"
@@ -666,8 +679,12 @@ class NodeRev(object):
         raise
 
       # pull of the leading space and trailing new line
+      if len(value) < 2:
+          raise FsfsVerifyException("value needs to contain 2 or more bytes (%d)" % currentOffset)
       value = value[1:-1]
 
+      assert value != ""
+
       if field == 'id':
         self.id = NodeId(value)
       elif field == 'type':
@@ -681,7 +698,16 @@ class NodeRev(object):
         length = int(values[2])
         size = int(values[3])
         digest = values[4]
-        # TODO SHA1 digest
+        
+        if len(values) > 5:
+            sha1 = values[5]
+        else:
+            sha1 = None
+        
+        if len(values) > 6:
+            uniquifier = values[6]
+        else:
+            uniquifier = None
 
         if rev != currentRev:
           contentType = None
@@ -692,7 +718,7 @@ class NodeRev(object):
           f.seek(savedOffset)
 
         self.text = TextRep(rev, offset, length, size, digest,
-                            contentType, currentRev, self)
+                            contentType, currentRev, self, sha1, uniquifier)
       elif field == 'props':
         (rev, offset, length, size, digest) = value.split(' ')
         rev = int(rev)
@@ -723,6 +749,28 @@ class NodeRev(object):
           offset = f.tell()
           f.seek(self.text.offset)
           self.dir = getDirHash(f)
+          
+          for k,v in self.dir.items():
+              nodeType, nodeId = v
+              
+              if nodeId.rev != self.id.rev:
+                  if not os.path.exists(str(nodeId.rev)):
+                      print "Can't check %s" % repr(nodeId)
+                      continue
+                  with open(str(nodeId.rev),'rb') as tmp:
+                      tmp.seek(nodeId.offset)
+                      idLine = tmp.readline()
+              else:
+                  f.seek(nodeId.offset)
+                  idLine = f.readline()
+              
+              if idLine != ("id: %s\n" % nodeId):
+                  raise DataCorrupt(
+                     ("Entry for '%s' at " % k ) +
+                     ("offset %d is pointing to an " % self.text.offset) +
+                     ("invalid location (node claims to be at offset %d)" % (
+                       nodeId.offset))
+                    )
           f.seek(offset)
         else:
           # The directory entries are stored in another file.
@@ -851,7 +899,7 @@ class RegexpStrategy(WalkStrategy):
     self.nodeFile = open(filename, 'rb')
 
   def _nodeWalker(self):
-    nodeId_re = re.compile(r'^id: [a-z0-9\./]+$')
+    nodeId_re = re.compile(r'^id: [a-z0-9\./\-]+$')
 
     self.f.seek(0)
     offset = 0
@@ -913,6 +961,11 @@ def truncate(noderev, revFile):
   fields[3] = '0' * len(fields[3])
   fields[4] = '0' * len(fields[4])
   fields[5] = 'd41d8cd98f00b204e9800998ecf8427e'
+
+  if len(fields) > 6:
+    fields[6] = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
+    fields[7] = fields[7].strip()
+
   newTextRep = ' '.join(fields) + '\x0a'
   assert(len(newTextRep) == overallLength)
   revFile.write(newTextRep)
@@ -1106,8 +1159,9 @@ if __name__ == '__main__':
     match = re.match('([0-9]+)', os.path.basename(filename))
     currentRev = int(match.group(1), 10)
   except:
-    raise CmdlineError, \
-      "The file name must start with a decimal number that indicates the revision"
+    raise CmdlineError(
+      "The file name must start with a decimal " +
+      "number that indicates the revision")
 
   if options.noderevRegexp:
     strategy = RegexpStrategy(filename, root, currentRev)

Modified: subversion/branches/ignore-mergeinfo/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/gen-make.py?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/gen-make.py (original)
+++ subversion/branches/ignore-mergeinfo/gen-make.py Sat Dec 11 00:15:55 2010
@@ -93,8 +93,10 @@ def _objinfo(o):
     return "%s: %s %s" % (t,n,f)
 
 
-def _usage_exit():
-  "print usage, exit the script"
+def _usage_exit(err=None):
+  "print ERR (if any), print usage, then exit the script"
+  if err:
+    print("ERROR: %s\n" % (err))
   print("USAGE:  gen-make.py [options...] [conf-file]")
   print("  -s        skip dependency generation")
   print("  --debug   print lots of stuff only developers care about")
@@ -261,9 +263,9 @@ if __name__ == '__main__':
                             'vsnet-version=',
                             ])
     if len(args) > 1:
-      _usage_exit()
-  except getopt.GetoptError:
-    _usage_exit()
+      _usage_exit("Too many arguments")
+  except getopt.GetoptError, e:
+    _usage_exit(str(e))
 
   conf = 'build.conf'
   skip = 0
@@ -306,7 +308,7 @@ if __name__ == '__main__':
   opt_conf.close()
 
   if gentype not in gen_modules.keys():
-    _usage_exit()
+    _usage_exit("Unknown module type '%s'" % (gentype))
 
   main(conf, gentype, skip_depends=skip, other_options=rest.list)
 

Modified: subversion/branches/ignore-mergeinfo/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/get-deps.sh?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/get-deps.sh (original)
+++ subversion/branches/ignore-mergeinfo/get-deps.sh Sat Dec 11 00:15:55 2010
@@ -23,15 +23,15 @@
 # get-deps.sh -- download the dependencies useful for building Subversion
 #
 
-APR=apr-1.3.8
-APR_UTIL=apr-util-1.3.9
-NEON=neon-0.29.0
-SERF=serf-0.6.1
+APR=apr-1.3.9
+APR_UTIL=apr-util-1.3.10
+NEON=neon-0.29.5
+SERF=serf-0.7.0
 ZLIB=zlib-1.2.5
-SQLITE_VERSION=3.7.2
+SQLITE_VERSION=3.7.3
 SQLITE=sqlite-amalgamation-$SQLITE_VERSION
 
-HTTPD=httpd-2.2.14
+HTTPD=httpd-2.2.17
 HTTPD_OOPS=
 APR_ICONV=apr-iconv-1.2.1
 APR_ICONV_OOPS=

Modified: subversion/branches/ignore-mergeinfo/notes/http-and-webdav/webdav-protocol
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/notes/http-and-webdav/webdav-protocol?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/notes/http-and-webdav/webdav-protocol (original)
+++ subversion/branches/ignore-mergeinfo/notes/http-and-webdav/webdav-protocol Sat Dec 11 00:15:55 2010
@@ -177,6 +177,42 @@ Response:
   
   ...svn-svndiff stream that can be passed to svn_txdelta_parse_svndiff...
 
+PROPPATCH
+=========
+
+We extend PROPPATCH as follows.  To pass OLD_VALUE_P (as in
+svn_ra_change_rev_prop2()), any propchange which is accompanied by a non-NULL
+OLD_VALUE_P goes within the <D:set><D:prop> tag (and never within the
+<D:remove><D:prop> tag --- even if it is a propdel).  Consequently, in
+mod_dav_svn it would land in db_store() and not db_remove().
+
+The property tag (in the C: or S: namespace) always contains the propval in its
+cdata (potentially base64-encoded).  The extension is as follows:
+
+* The property tag grows a V:absent attribute, to represent that the property
+  is being removed (i.e., a propdel routed to <D:set><D:prop>).
+
+* A <V:old-value> tag may be nested within the property tag.  The nested tag
+  supports the same V:absent and V:encoding attributed as the parent (property)
+  tag.
+
+* To preserve SVN_ERR_FS_PROP_BASEVALUE_MISMATCH (which is part of
+  the API promise), the <D:status>HTTP/1.1 500 (status)</D:status>
+  part of the "207 Multi-Status" response is used.  We transmit in
+  it a "412 Precondition Failed" response, which ra_neon and ra_serf
+  then special-case to interpret SVN_ERR_FS_PROP_BASEVALUE_MISMATCH.
+
+  Someday we will marshal complete svn_error_t chains over the wire
+  in ra_dav, just like ra_svn does (see svn_ra_svn__handle_failure_status()),
+  or at least will preserve the outer apr_err code in more cases.  In the 
+  meantime, using 412 allows us to preserve the SVN_ERR_FS_PROP_BASEVALUE_MISMATCH
+  error code, which is required for implementing svn_ra_change_rev_prop2().
+
+Historical note: we route propdels via <D:set>/db_store() because the mod_dav
+API for db_remove() was insufficient.  See this thread:
+http://mid.gmane.org/4C531CFB.2010202@collab.net
+
+
 Custom REPORTs
 ==============
 

Modified: subversion/branches/ignore-mergeinfo/notes/http-and-webdav/webdav-usage.html
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/notes/http-and-webdav/webdav-usage.html?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/notes/http-and-webdav/webdav-usage.html (original)
+++ subversion/branches/ignore-mergeinfo/notes/http-and-webdav/webdav-usage.html Sat Dec 11 00:15:55 2010
@@ -19,7 +19,7 @@
 
     <p>
       This document details how WebDAV is used within the
-      <a href="http://subversion.tigris.org/">Subversion
+      <a href="http://subversion.apache.org/">Subversion
       product</a>. Specifically, how the client side interfaces with
       <a href="http://www.webdav.org/neon/">Neon</a> to generate
       WebDAV requests over the wire, and what the
@@ -31,7 +31,7 @@
     </p>
     <p>
       This document heavily refers to the
-      <a href="http://subversion.tigris.org/files/documents/15/17/svn-design.html">Subversion
+      <a href="http://svn.apache.org/repos/asf/subversion/trunk/notes/subversion-design.html">Subversion
 	design document</a> and the
       <a href="http://www.webdav.org/deltav/">latest Delta-V protocol
 	draft</a>. Details of those documents will <em>not</em> be

Modified: subversion/branches/ignore-mergeinfo/notes/wc-ng/copying
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/notes/wc-ng/copying?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/notes/wc-ng/copying (original)
+++ subversion/branches/ignore-mergeinfo/notes/wc-ng/copying Sat Dec 11 00:15:55 2010
@@ -27,7 +27,10 @@ changes have to be made in the repositor
                              A /X (from /S@N)   M /X/T
                                                 (with local mods)
 
-  /S@N    /S/T@M             A /X (from /S@N)   A /X/T (from /S/A@M)
+  /S@N    /S/T@M             A /X (from /S@N)
+                             (if server finds T@M is same thing as T@N)
+                             or
+                             A /X (from /S@N)   A /X/T (from /S/A@M)
                              or
                              A /X (from /S@N)   R /X/T (from /S/A@M)
                                                 (the FS layer converts
@@ -68,13 +71,26 @@ revision source and from a source with a
 child.  In both cases the commit must either add or replace the child
 and if the copy is from a source that is locally added or replaced the
 client can make the distinction and send a delete before adding the
-replacement.  For a mixed revision the client doesn't distinguish
+replacement.  For a mixed revision, as the client doesn't know whether
+the child existed in its parent's revision and so can't distinguish
 between add and replace, it always sends an add and the FS layer
 converts to a replace as required (for details see 2010-04-19 comments
 in issue 3314).  We will probably have to continue rely on this in
 WC-NG as there is not enough information in the source to determine
 whether or not the child also exists in the parent's revision.
 
+If the mixed-rev source has a "not-present" child (effectively the
+same as "updated to r0"), then the copy schedules this as "delete".
+The client doesn't know whether the child existed in its parent's
+revision, so it can't distinguish between delete and no-op, so it
+always sends a delete.
+
+  ### This current fails, in both 1.6 and trunk.
+
+  ### TODO: The server needs to silently elide a delete, or the client
+  needs to detect the error and recover from it and continue if that
+  is possible.
+
 Child nodes not-present in the source become not-present working nodes
 in the copy, this ensures that they get deleted by the commit.  We
 might want to use a new not-copied state instead, since these deletes

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/ctypes-python/csvn/repos.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/ctypes-python/csvn/repos.py?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/ctypes-python/csvn/repos.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/ctypes-python/csvn/repos.py Sat Dec 11 00:15:55 2010
@@ -324,7 +324,7 @@ class RemoteRepository(object):
     def set_log_func(self, log_func):
         """Register a callback to get a log message for commit and
         commit-like operations. LOG_FUNC should take an array as an argument,
-        which holds the files to be commited. It should return a list of the
+        which holds the files to be committed. It should return a list of the
         form [LOG, FILE] where LOG is a log message and FILE is the temporary
         file, if one was created instead of a log message. If LOG is None,
         the operation will be canceled and FILE will be treated as the
@@ -408,7 +408,7 @@ class LocalRepository(object):
           ... absent, then we return svn_node_none.
           ... a regular file, then we return svn_node_file.
           ... a directory, then we return svn_node_dir
-          ... unknown, then we return svn_node_unknowna
+          ... unknown, then we return svn_node_unknown
         """
         assert(not encoded)
         root = self.fs.root(rev=rev, pool=self.iterpool)

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/ctypes-python/csvn/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/ctypes-python/csvn/wc.py?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/ctypes-python/csvn/wc.py (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/ctypes-python/csvn/wc.py Sat Dec 11 00:15:55 2010
@@ -30,8 +30,8 @@ class WC(object):
 
         Keyword arguments:
         path -- path to the working copy (default current working directory)
-        user -- object implementingthe user interface representing the user
-            performing the operatio (defaults to an instance of the User class)
+        user -- object implementing the user interface representing the user
+            performing the operation (defaults to an instance of the User class)
         """
         if user is None:
             user = User()
@@ -238,7 +238,7 @@ class WC(object):
     def set_progress_func(self, progress_func):
         """Setup a callback for network progress information.
 
-        This callback should accept two intergers, being the number of bytes
+        This callback should accept two integers, being the number of bytes
         sent and the number of bytes to send.
 
         Keyword arguments:
@@ -428,7 +428,7 @@ class WC(object):
         return props
 
     def propget(self, propname, target="", recurse=True):
-        """Get the the value of propname for target.
+        """Get the value of propname for target.
 
         Returns a hash the keys of which are file paths and the values are the
         value of PROPNAME for the corresponding file. The values of the hash
@@ -477,7 +477,7 @@ class WC(object):
         """Get the status on path using callback to status.
 
         The status callback (which can be set when this method is called or
-        earlier) wil be called for each item.
+        earlier) will be called for each item.
 
         Keyword arguments:
         path -- items to get status for (defaults to WC root)
@@ -585,8 +585,8 @@ class WC(object):
         """Register a callback to get a log message for commit and commit-like
         operations.
 
-        LOG_FUNC should take an array as an argument,vwhich holds the files to
-        be commited. It should return a list of thevform [LOG, FILE] where LOG
+        LOG_FUNC should take an array as an argument, which holds the files to
+        be committed. It should return a list of the form [LOG, FILE] where LOG
         is a log message and FILE is the temporary file, if one was created
         instead of a log message. If LOG is None, the operation will be
         canceled and FILE will be treated as the temporary file holding the
@@ -615,9 +615,9 @@ class WC(object):
         """Commit changes in the working copy.
 
         Keyword arguments:
-        paths -- list of paths that should be commited (defaults to WC root)
+        paths -- list of paths that should be committed (defaults to WC root)
         recurse -- if True, the contents of directories to be committed will
-            also be commited (default True)
+            also be committed (default True)
         keep_locks -- if True, locks will not be released during commit
             (default False)"""
         commit_info = POINTER(svn_commit_info_t)()
@@ -702,9 +702,9 @@ class WC(object):
         self.iterpool.clear()
 
     def relocate(self, from_url, to_url, dir="", recurse=True):
-        """Modify a working copy directory, changing repository URLs. that begin with FROM_URL to begin with
-        TO_URL instead, recursing into subdirectories if RECURSE is True
-        (True by default).
+        """Modify a working copy directory, changing repository URLs that begin
+        with FROM_URL to begin with TO_URL instead, recursing into
+        subdirectories if RECURSE is True (True by default).
 
         Keyword arguments:
         from_url -- url to be replaced, if this url is matched at the beginning

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/BlameCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/BlameCallback.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/BlameCallback.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/BlameCallback.cpp Sat Dec 11 00:15:55 2010
@@ -106,14 +106,14 @@ BlameCallback::singleLine(svn_revnum_t s
     }
 
   // convert the parameters to their Java relatives
-  jobject jrevProps = CreateJ::PropertyMap(revProps, pool);
+  jobject jrevProps = CreateJ::PropertyMap(revProps);
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN(SVN_NO_ERROR);
 
   jobject jmergedRevProps = NULL;
   if (mergedRevProps != NULL)
     {
-      jmergedRevProps = CreateJ::PropertyMap(mergedRevProps, pool);
+      jmergedRevProps = CreateJ::PropertyMap(mergedRevProps);
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN(SVN_NO_ERROR);
     }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ClientContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ClientContext.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ClientContext.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ClientContext.cpp Sat Dec 11 00:15:55 2010
@@ -38,7 +38,8 @@
 
 
 ClientContext::ClientContext(jobject jsvnclient)
-    : m_prompter(NULL)
+    : m_prompter(NULL),
+      m_cancelOperation(false)
 {
     JNIEnv *env = JNIUtil::getEnv();
     JNICriticalSection criticalSection(*JNIUtil::getGlobalPoolMutex());
@@ -240,7 +241,7 @@ ClientContext::setConfigDirectory(const 
 }
 
 const char *
-ClientContext::getConfigDirectory()
+ClientContext::getConfigDirectory() const
 {
     return m_configDir.c_str();
 }
@@ -285,7 +286,7 @@ ClientContext::notify(void *baton,
       env->DeleteLocalRef(clazz);
     }
 
-  jobject jInfo = CreateJ::ClientNotifyInformation(notify, pool);
+  jobject jInfo = CreateJ::ClientNotifyInformation(notify);
   if (JNIUtil::isJavaExceptionThrown())
     return;
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ClientContext.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ClientContext.h?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ClientContext.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ClientContext.h Sat Dec 11 00:15:55 2010
@@ -80,7 +80,7 @@ class ClientContext
   void password(const char *pi_password);
   void setPrompt(Prompter *prompter);
   void cancelOperation();
-  const char *getConfigDirectory();
+  const char *getConfigDirectory() const;
 
   /**
    * Set the configuration directory, taking the usual steps to

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/CreateJ.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/CreateJ.cpp Sat Dec 11 00:15:55 2010
@@ -60,7 +60,7 @@ CreateJ::ConflictDescriptor(const svn_wc
     {
       ctor = env->GetMethodID(clazz, "<init>", "(Ljava/lang/String;"
                               "L"JAVA_PACKAGE"/ConflictDescriptor$Kind;"
-                              "L"JAVA_PACKAGE"/NodeKind;"
+                              "L"JAVA_PACKAGE"/types/NodeKind;"
                               "Ljava/lang/String;ZLjava/lang/String;"
                               "L"JAVA_PACKAGE"/ConflictDescriptor$Action;"
                               "L"JAVA_PACKAGE"/ConflictDescriptor$Reason;"
@@ -152,7 +152,8 @@ CreateJ::ConflictVersion(const svn_wc_co
     {
       ctor = env->GetMethodID(clazz, "<init>", "(Ljava/lang/String;J"
                                                "Ljava/lang/String;"
-                                               "L"JAVA_PACKAGE"/NodeKind;)V");
+                                               "L"JAVA_PACKAGE"/types/NodeKind;"
+                                               ")V");
       if (JNIUtil::isJavaExceptionThrown() || ctor == 0)
         POP_AND_RETURN_NULL;
     }
@@ -177,7 +178,7 @@ CreateJ::ConflictVersion(const svn_wc_co
 }
 
 jobject
-CreateJ::Info2(const char *path, const svn_info_t *info)
+CreateJ::Info(const char *path, const svn_info_t *info)
 {
   JNIEnv *env = JNIUtil::getEnv();
 
@@ -186,7 +187,7 @@ CreateJ::Info2(const char *path, const s
   if (JNIUtil::isJavaExceptionThrown())
     return NULL;
 
-  jclass clazz = env->FindClass(JAVA_PACKAGE "/Info2");
+  jclass clazz = env->FindClass(JAVA_PACKAGE "/Info");
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
@@ -194,17 +195,18 @@ CreateJ::Info2(const char *path, const s
   if (mid == 0)
     {
       mid = env->GetMethodID(clazz, "<init>",
-                             "(Ljava/lang/String;Ljava/lang/String;J"
-                             "L"JAVA_PACKAGE"/NodeKind;"
+                             "(Ljava/lang/String;Ljava/lang/String;"
+                             "Ljava/lang/String;J"
+                             "L"JAVA_PACKAGE"/types/NodeKind;"
                              "Ljava/lang/String;Ljava/lang/String;"
                              "JJLjava/lang/String;"
                              "L"JAVA_PACKAGE"/Lock;Z"
-                             "L"JAVA_PACKAGE"/Info2$ScheduleKind;"
+                             "L"JAVA_PACKAGE"/Info$ScheduleKind;"
                              "Ljava/lang/String;JJJ"
                              "Ljava/lang/String;Ljava/lang/String;"
                              "Ljava/lang/String;Ljava/lang/String;"
                              "Ljava/lang/String;Ljava/lang/String;JJ"
-                             "L"JAVA_PACKAGE"/Depth;"
+                             "L"JAVA_PACKAGE"/types/Depth;"
                              "L"JAVA_PACKAGE"/ConflictDescriptor;)V");
       if (mid == 0 || JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN_NULL;
@@ -214,6 +216,10 @@ CreateJ::Info2(const char *path, const s
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
+  jstring jwcroot = JNIUtil::makeJString(info->wcroot_abspath);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
   jstring jurl = JNIUtil::makeJString(info->URL);
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
@@ -280,7 +286,8 @@ CreateJ::Info2(const char *path, const s
   jlong jreposSize = info->size == SVN_INFO_SIZE_UNKNOWN
     ? -1 : (jlong) info->size;
 
-  jobject jinfo2 = env->NewObject(clazz, mid, jpath, jurl, (jlong) info->rev,
+  jobject jinfo2 = env->NewObject(clazz, mid, jpath, jwcroot, jurl,
+                                  (jlong) info->rev,
                                   jnodeKind, jreposRootUrl, jreportUUID,
                                   (jlong) info->last_changed_rev,
                                   (jlong) info->last_changed_date,
@@ -370,9 +377,9 @@ CreateJ::ChangedPath(const char *path, s
                                "<init>",
                                "(Ljava/lang/String;JLjava/lang/String;"
                                "L"JAVA_PACKAGE"/ChangePath$Action;"
-                               "L"JAVA_PACKAGE"/NodeKind;"
-                               "L"JAVA_PACKAGE"/Tristate;"
-                               "L"JAVA_PACKAGE"/Tristate;)V");
+                               "L"JAVA_PACKAGE"/types/NodeKind;"
+                               "L"JAVA_PACKAGE"/types/Tristate;"
+                               "L"JAVA_PACKAGE"/types/Tristate;)V");
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN(SVN_NO_ERROR);
     }
@@ -425,7 +432,7 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
     {
       mid = env->GetMethodID(clazz, "<init>",
                              "(Ljava/lang/String;Ljava/lang/String;"
-                             "L"JAVA_PACKAGE"/NodeKind;"
+                             "L"JAVA_PACKAGE"/types/NodeKind;"
                              "JJJLjava/lang/String;"
                              "L"JAVA_PACKAGE"/Status$Kind;"
                              "L"JAVA_PACKAGE"/Status$Kind;"
@@ -437,7 +444,7 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
                              "JZZLjava/lang/String;Ljava/lang/String;"
                              "Ljava/lang/String;"
                              "JL"JAVA_PACKAGE"/Lock;"
-                             "JJL"JAVA_PACKAGE"/NodeKind;"
+                             "JJL"JAVA_PACKAGE"/types/NodeKind;"
                              "Ljava/lang/String;Ljava/lang/String;)V");
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN_NULL;
@@ -671,8 +678,7 @@ CreateJ::Status(svn_wc_context_t *wc_ctx
 }
 
 jobject
-CreateJ::ClientNotifyInformation(const svn_wc_notify_t *wcNotify,
-                                 apr_pool_t *pool)
+CreateJ::ClientNotifyInformation(const svn_wc_notify_t *wcNotify)
 {
   JNIEnv *env = JNIUtil::getEnv();
 
@@ -691,7 +697,8 @@ CreateJ::ClientNotifyInformation(const s
       midCT = env->GetMethodID(clazz, "<init>",
                                "(Ljava/lang/String;"
                                "L"JAVA_PACKAGE"/ClientNotifyInformation$Action;"
-                               "L"JAVA_PACKAGE"/NodeKind;Ljava/lang/String;"
+                               "L"JAVA_PACKAGE"/types/NodeKind;"
+                               "Ljava/lang/String;"
                                "L"JAVA_PACKAGE"/Lock;"
                                "Ljava/lang/String;"
                                "L"JAVA_PACKAGE"/ClientNotifyInformation$Status;"
@@ -762,7 +769,7 @@ CreateJ::ClientNotifyInformation(const s
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
-  jobject jrevProps = CreateJ::PropertyMap(wcNotify->rev_props, pool);
+  jobject jrevProps = CreateJ::PropertyMap(wcNotify->rev_props);
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
@@ -791,8 +798,7 @@ CreateJ::ClientNotifyInformation(const s
 }
 
 jobject
-CreateJ::ReposNotifyInformation(const svn_repos_notify_t *reposNotify,
-                                apr_pool_t *pool)
+CreateJ::ReposNotifyInformation(const svn_repos_notify_t *reposNotify)
 {
   JNIEnv *env = JNIUtil::getEnv();
 
@@ -870,7 +876,7 @@ CreateJ::CommitItem(svn_client_commit_it
     {
       midConstructor = env->GetMethodID(clazz, "<init>",
                                         "(Ljava/lang/String;"
-                                        "L"JAVA_PACKAGE"/NodeKind;"
+                                        "L"JAVA_PACKAGE"/types/NodeKind;"
                                         "ILjava/lang/String;"
                                         "Ljava/lang/String;J)V");
       if (JNIUtil::isExceptionThrown())
@@ -1016,7 +1022,6 @@ CreateJ::RevisionRangeList(apr_array_hea
 jobject
 CreateJ::StringSet(apr_array_header_t *strings)
 {
-  JNIEnv *env = JNIUtil::getEnv();
   std::vector<jobject> jstrs;
 
   for (int i = 0; i < strings->nelts; ++i)
@@ -1032,7 +1037,7 @@ CreateJ::StringSet(apr_array_header_t *s
   return CreateJ::Set(jstrs);
 }
 
-jobject CreateJ::PropertyMap(apr_hash_t *prop_hash, apr_pool_t *pool)
+jobject CreateJ::PropertyMap(apr_hash_t *prop_hash)
 {
   JNIEnv *env = JNIUtil::getEnv();
 
@@ -1072,7 +1077,8 @@ jobject CreateJ::PropertyMap(apr_hash_t 
 
   apr_hash_index_t *hi;
   int i = 0;
-  for (hi = apr_hash_first(pool, prop_hash); hi; hi = apr_hash_next(hi), ++i)
+  for (hi = apr_hash_first(apr_hash_pool_get(prop_hash), prop_hash);
+       hi; hi = apr_hash_next(hi), ++i)
     {
       const char *key;
       svn_string_t *val;

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/CreateJ.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/CreateJ.h?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/CreateJ.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/CreateJ.h Sat Dec 11 00:15:55 2010
@@ -46,7 +46,7 @@ class CreateJ
   ConflictDescriptor(const svn_wc_conflict_description_t *desc);
 
   static jobject
-  Info2(const char *path, const svn_info_t *info);
+  Info(const char *path, const svn_info_t *info);
 
   static jobject
   Lock(const svn_lock_t *lock);
@@ -59,10 +59,10 @@ class CreateJ
          const svn_client_status_t *status, apr_pool_t *pool);
 
   static jobject
-  ClientNotifyInformation(const svn_wc_notify_t *notify, apr_pool_t *pool);
+  ClientNotifyInformation(const svn_wc_notify_t *notify);
 
   static jobject
-  ReposNotifyInformation(const svn_repos_notify_t *notify, apr_pool_t *pool);
+  ReposNotifyInformation(const svn_repos_notify_t *notify);
 
   static jobject
   CommitItem(svn_client_commit_item3_t *item);
@@ -77,7 +77,7 @@ class CreateJ
   StringSet(apr_array_header_t *strings);
 
   static jobject
-  PropertyMap(apr_hash_t *prop_hash, apr_pool_t *pool);
+  PropertyMap(apr_hash_t *prop_hash);
 
   /* This creates a set of Objects.  It derefs the members of the vector
    * after putting them in the set, so they caller doesn't need to. */

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp Sat Dec 11 00:15:55 2010
@@ -91,7 +91,7 @@ DiffSummaryReceiver::onSummary(const svn
       ctor = env->GetMethodID(clazz, "<init>",
                               "(Ljava/lang/String;"
                               "L"JAVA_PACKAGE"/DiffSummary$DiffKind;Z"
-                              "L"JAVA_PACKAGE"/NodeKind;)V");
+                              "L"JAVA_PACKAGE"/types/NodeKind;)V");
       if (JNIUtil::isJavaExceptionThrown() || ctor == 0)
         POP_AND_RETURN(SVN_NO_ERROR);
     }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/EnumMapper.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/EnumMapper.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/EnumMapper.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/EnumMapper.cpp Sat Dec 11 00:15:55 2010
@@ -114,7 +114,7 @@ jobject EnumMapper::mapReposNotifyAction
 jobject EnumMapper::mapNodeKind(svn_node_kind_t nodeKind)
 {
   // We're assuming a valid value for the C enum above
-  return mapEnum(JAVA_PACKAGE"/NodeKind", (int) nodeKind);
+  return mapEnum(JAVA_PACKAGE"/types/NodeKind", (int) nodeKind);
 }
 
 /**
@@ -132,7 +132,7 @@ jobject EnumMapper::mapNotifyLockState(s
 jobject EnumMapper::mapScheduleKind(svn_wc_schedule_t schedule)
 {
   // We're assuming a valid value for the C enum above
-  return mapEnum(JAVA_PACKAGE"/Info2$ScheduleKind", (int) schedule);
+  return mapEnum(JAVA_PACKAGE"/Info$ScheduleKind", (int) schedule);
 }
 
 /**
@@ -165,7 +165,7 @@ jobject EnumMapper::mapConflictReason(sv
 
 int EnumMapper::toMergeinfoLogKind(jobject jLogKind)
 {
-  return getOrdinal(JAVA_PACKAGE"/MergeinfoLogKind", jLogKind);
+  return getOrdinal(JAVA_PACKAGE"/Mergeinfo$LogKind", jLogKind);
 }
 
 int EnumMapper::toLogLevel(jobject jLogLevel)
@@ -176,14 +176,14 @@ int EnumMapper::toLogLevel(jobject jLogL
 svn_depth_t EnumMapper::toDepth(jobject jdepth)
 {
   // The offset for depths is -2
-  return (svn_depth_t) (getOrdinal(JAVA_PACKAGE"/Depth", jdepth) - 2);
+  return (svn_depth_t) (getOrdinal(JAVA_PACKAGE"/types/Depth", jdepth) - 2);
 }
 
 jobject EnumMapper::mapDepth(svn_depth_t depth)
 {
   // We're assuming a valid value for the C enum above
   // The offset for depths is -2
-  return mapEnum(JAVA_PACKAGE"/Depth", ((int) depth) + 2);
+  return mapEnum(JAVA_PACKAGE"/types/Depth", ((int) depth) + 2);
 }
 
 jobject EnumMapper::mapOperation(svn_wc_operation_t operation)
@@ -195,7 +195,8 @@ jobject EnumMapper::mapOperation(svn_wc_
 jobject EnumMapper::mapTristate(svn_tristate_t tristate)
 {
   // We're assuming a valid value for the C enum above
-  return mapEnum(JAVA_PACKAGE"/Tristate", (int) tristate);
+  return mapEnum(JAVA_PACKAGE"/types/Tristate",
+                 (int) (tristate - svn_tristate_false));
 }
 
 svn_wc_conflict_choice_t EnumMapper::toConflictChoice(jobject jchoice)

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/File.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/File.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/File.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/File.cpp Sat Dec 11 00:15:55 2010
@@ -95,7 +95,7 @@ const char *File::getInternalStyle(const
     return NULL;
 }
 
-bool File::isNull()
+bool File::isNull() const
 {
   return m_jthis == NULL;
 }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/File.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/File.h?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/File.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/File.h Sat Dec 11 00:15:55 2010
@@ -49,7 +49,7 @@ class File
   ~File();
   const char *getAbsPath();
   const char *getInternalStyle(const SVN::Pool &pool);
-  bool isNull();
+  bool isNull() const;
 };
 
 #endif // FILE_H

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/InfoCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/InfoCallback.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/InfoCallback.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/InfoCallback.cpp Sat Dec 11 00:15:55 2010
@@ -85,12 +85,12 @@ InfoCallback::singleInfo(const char *pat
         POP_AND_RETURN(SVN_NO_ERROR);
 
       mid = env->GetMethodID(clazz, "singleInfo",
-                             "(L"JAVA_PACKAGE"/Info2;)V");
+                             "(L"JAVA_PACKAGE"/Info;)V");
       if (JNIUtil::isJavaExceptionThrown() || mid == 0)
         POP_AND_RETURN(SVN_NO_ERROR);
     }
 
-  jobject jinfo2 = CreateJ::Info2(path, info);
+  jobject jinfo2 = CreateJ::Info(path, info);
   if (jinfo2 == NULL || JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN(SVN_NO_ERROR);
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIByteArray.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIByteArray.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIByteArray.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIByteArray.cpp Sat Dec 11 00:15:55 2010
@@ -78,7 +78,7 @@ int JNIByteArray::getLength()
  * Returns the bytes of the byte array.
  * @return the bytes
  */
-const signed char *JNIByteArray::getBytes()
+const signed char *JNIByteArray::getBytes() const
 {
   return m_data;
 }
@@ -87,7 +87,7 @@ const signed char *JNIByteArray::getByte
  * Returns if the byte array was not set.
  * @return if the byte array was not set
  */
-bool JNIByteArray::isNull()
+bool JNIByteArray::isNull() const
 {
   return m_data == NULL;
 }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIByteArray.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIByteArray.h?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIByteArray.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIByteArray.h Sat Dec 11 00:15:55 2010
@@ -52,8 +52,8 @@ class JNIByteArray
    */
   bool m_deleteByteArray;
  public:
-  bool isNull();
-  const signed char *getBytes();
+  bool isNull() const;
+  const signed char *getBytes() const;
   int getLength();
   JNIByteArray(jbyteArray jba, bool deleteByteArray = false);
   ~JNIByteArray();

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIUtil.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIUtil.h?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIUtil.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/JNIUtil.h Sat Dec 11 00:15:55 2010
@@ -179,7 +179,7 @@ class JNIUtil
   static JNIMutex *g_logMutex;
 
   /**
-   * Flag, that an exception occured during our initialization.
+   * Flag, that an exception occurred during our initialization.
    */
   static bool g_initException;
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ListCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ListCallback.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ListCallback.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ListCallback.cpp Sat Dec 11 00:15:55 2010
@@ -140,7 +140,7 @@ ListCallback::createJavaDirEntry(const c
     {
       mid = env->GetMethodID(clazz, "<init>",
                              "(Ljava/lang/String;Ljava/lang/String;"
-                             "L"JAVA_PACKAGE"/NodeKind;"
+                             "L"JAVA_PACKAGE"/types/NodeKind;"
                              "JZJJLjava/lang/String;)V");
       if (JNIUtil::isJavaExceptionThrown())
         POP_AND_RETURN_NULL;

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/LogMessageCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/LogMessageCallback.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/LogMessageCallback.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/LogMessageCallback.cpp Sat Dec 11 00:15:55 2010
@@ -115,7 +115,7 @@ LogMessageCallback::singleMessage(svn_lo
 
   jobject jrevprops = NULL;
   if (log_entry->revprops != NULL && apr_hash_count(log_entry->revprops) > 0)
-    jrevprops = CreateJ::PropertyMap(log_entry->revprops, pool);
+    jrevprops = CreateJ::PropertyMap(log_entry->revprops);
 
   env->CallVoidMethod(m_callback,
                       sm_mid,

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ProplistCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ProplistCallback.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ProplistCallback.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ProplistCallback.cpp Sat Dec 11 00:15:55 2010
@@ -96,7 +96,7 @@ svn_error_t *ProplistCallback::singlePat
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN(SVN_NO_ERROR);
 
-  jobject jmap = CreateJ::PropertyMap(prop_hash, pool);
+  jobject jmap = CreateJ::PropertyMap(prop_hash);
   if (JNIUtil::isJavaExceptionThrown())
     POP_AND_RETURN(SVN_NO_ERROR);
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ReposNotifyCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ReposNotifyCallback.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ReposNotifyCallback.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/ReposNotifyCallback.cpp Sat Dec 11 00:15:55 2010
@@ -81,7 +81,7 @@ ReposNotifyCallback::onNotify(const svn_
       env->DeleteLocalRef(clazz);
     }
 
-  jobject jInfo = CreateJ::ReposNotifyInformation(wcNotify, pool);
+  jobject jInfo = CreateJ::ReposNotifyInformation(wcNotify);
   if (JNIUtil::isJavaExceptionThrown())
     return;
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNBase.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNBase.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNBase.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNBase.cpp Sat Dec 11 00:15:55 2010
@@ -36,7 +36,7 @@ SVNBase::~SVNBase()
 {
 }
 
-jlong SVNBase::getCppAddr()
+jlong SVNBase::getCppAddr() const
 {
   return reinterpret_cast<jlong>(this);
 }

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNBase.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNBase.h?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNBase.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNBase.h Sat Dec 11 00:15:55 2010
@@ -40,7 +40,7 @@ class SVNBase
    *
    * @since 1.4.0
    */
-  jlong getCppAddr();
+  jlong getCppAddr() const;
 
   /**
    * Deletes this C++ peer object, and clears the memory address of

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNClient.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNClient.cpp Sat Dec 11 00:15:55 2010
@@ -428,7 +428,7 @@ void SVNClient::move(Targets &srcPaths, 
         return;
 
     SVN_JNI_ERR(svn_client_move6((apr_array_header_t *) srcs,
-                                 destinationPath.c_str(), force, moveAsChild,
+                                 destinationPath.c_str(), moveAsChild,
                                  makeParents, revprops.hash(requestPool),
                                  CommitCallback::callback, callback, ctx,
                                  requestPool.pool()), );
@@ -1103,7 +1103,6 @@ void SVNClient::streamFileContent(const 
     Path intPath(path);
     SVN_JNI_ERR(intPath.error_occured(), );
 
-    JNIEnv *env = JNIUtil::getEnv();
     svn_client_ctx_t *ctx = context.getContext(NULL);
     if (ctx == NULL)
         return;
@@ -1153,7 +1152,7 @@ jbyteArray SVNClient::revProperty(const 
                                    propval->len);
 }
 void SVNClient::relocate(const char *from, const char *to, const char *path,
-                         bool recurse)
+                         bool ignoreExternals)
 {
     SVN::Pool requestPool;
     SVN_JNI_NULL_PTR_EX(path, "path", );
@@ -1172,9 +1171,9 @@ void SVNClient::relocate(const char *fro
     if (ctx == NULL)
         return;
 
-    SVN_JNI_ERR(svn_client_relocate(intPath.c_str(), intFrom.c_str(),
-                                    intTo.c_str(), recurse, ctx,
-                                    requestPool.pool()), );
+    SVN_JNI_ERR(svn_client_relocate2(intPath.c_str(), intFrom.c_str(),
+                                     intTo.c_str(), ignoreExternals, ctx,
+                                     requestPool.pool()), );
 }
 
 void SVNClient::blame(const char *path, Revision &pegRevision,
@@ -1408,13 +1407,12 @@ jobject SVNClient::revProperties(const c
                                         &set_rev, ctx, requestPool.pool()),
                 NULL);
 
-    return CreateJ::PropertyMap(props, requestPool.pool());
+    return CreateJ::PropertyMap(props);
 }
 
 struct info_baton
 {
     std::vector<info_entry> infoVect;
-    int info_ver;
     apr_pool_t *pool;
 };
 
@@ -1463,7 +1461,7 @@ SVNClient::patch(const char *patchPath, 
     // Should parameterize the following, instead of defaulting to FALSE
     SVN_JNI_ERR(svn_client_patch(checkedPatchPath.c_str(),
                                  checkedTargetPath.c_str(),
-                                 dryRun, stripCount, FALSE, reverse,
+                                 dryRun, stripCount, reverse,
                                  ignoreWhitespace, removeTempfiles,
                                  PatchCallback::callback, callback,
                                  ctx, requestPool.pool(),

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNClient.h?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNClient.h Sat Dec 11 00:15:55 2010
@@ -75,7 +75,7 @@ class SVNClient :public SVNBase
              bool ignoreMimeType, bool includeMergedRevisions,
              BlameCallback *callback);
   void relocate(const char *from, const char *to, const char *path,
-                bool recurse);
+                bool ignoreExternals);
   void streamFileContent(const char *path, Revision &revision,
                          Revision &pegRevision, OutputStream &outputStream);
   void propertySet(const char *path, const char *name, const char *value,

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNRepos.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNRepos.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/SVNRepos.cpp Sat Dec 11 00:15:55 2010
@@ -470,9 +470,9 @@ void SVNRepos::setRevProp(File &path, Re
                                                requestPool.pool());
   if (usePreRevPropChangeHook || usePostRevPropChangeHook)
     {
-      err = svn_repos_fs_change_rev_prop3(repos,
+      err = svn_repos_fs_change_rev_prop4(repos,
                                           revision.revision()->value.number,
-                                          NULL, propName, propValStr,
+                                          NULL, propName, NULL, propValStr,
                                           usePreRevPropChangeHook,
                                           usePostRevPropChangeHook, NULL,
                                           NULL, requestPool.pool());
@@ -617,7 +617,6 @@ jobject SVNRepos::lslocks(File &path, sv
 {
   SVN::Pool requestPool;
   svn_repos_t *repos;
-  svn_fs_t *fs;
   apr_hash_t *locks;
   apr_hash_index_t *hi;
 
@@ -629,7 +628,6 @@ jobject SVNRepos::lslocks(File &path, sv
 
   SVN_JNI_ERR(svn_repos_open(&repos, path.getInternalStyle(requestPool),
                              requestPool.pool()), NULL);
-  fs = svn_repos_fs (repos);
   /* Fetch all locks on or below the root directory. */
   SVN_JNI_ERR(svn_repos_fs_get_locks2(&locks, repos, "/", depth, NULL, NULL,
                                       requestPool.pool()),

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/Targets.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/Targets.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/Targets.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/Targets.cpp Sat Dec 11 00:15:55 2010
@@ -52,8 +52,6 @@ const apr_array_header_t *Targets::array
 {
   if (m_strArray != NULL)
     {
-      JNIEnv *env = JNIUtil::getEnv();
-
       const std::vector<std::string> &vec = m_strArray->vector();
 
       std::vector<std::string>::const_iterator it;

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Sat Dec 11 00:15:55 2010
@@ -760,7 +760,7 @@ Java_org_apache_subversion_javahl_SVNCli
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_Depth_2ZZZ
+Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZ
 (JNIEnv *env, jobject jthis, jstring jpath1, jobject jrevision1,
  jstring jpath2, jobject jrevision2, jstring jlocalPath, jboolean jforce,
  jobject jdepth, jboolean jignoreAncestry, jboolean jdryRun,
@@ -800,7 +800,7 @@ Java_org_apache_subversion_javahl_SVNCli
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_Depth_2ZZZ
+Java_org_apache_subversion_javahl_SVNClient_merge__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_util_List_2Ljava_lang_String_2ZLorg_apache_subversion_javahl_types_Depth_2ZZZ
 (JNIEnv *env, jobject jthis, jstring jpath, jobject jpegRevision,
  jobject jranges, jstring jlocalPath, jboolean jforce, jobject jdepth,
  jboolean jignoreAncestry, jboolean jdryRun, jboolean jrecordOnly)
@@ -1128,7 +1128,7 @@ JNIEXPORT void JNICALL Java_org_apache_s
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Depth_2Ljava_util_Collection_2ZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZ
 (JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
  jstring jtarget2, jobject jrevision2, jstring jrelativeToDir,
  jstring joutfileName, jobject jdepth, jobject jchangelists,
@@ -1178,7 +1178,7 @@ Java_org_apache_subversion_javahl_SVNCli
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Depth_2Ljava_util_Collection_2ZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZ
 (JNIEnv *env, jobject jthis, jstring jtarget, jobject jpegRevision,
  jobject jstartRevision, jobject jendRevision, jstring jrelativeToDir,
  jstring joutfileName, jobject jdepth, jobject jchangelists,
@@ -1228,7 +1228,7 @@ Java_org_apache_subversion_javahl_SVNCli
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Depth_2Ljava_util_Collection_2ZLorg_apache_subversion_javahl_callback_DiffSummaryCallback_2
+Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZLorg_apache_subversion_javahl_callback_DiffSummaryCallback_2
 (JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
  jstring jtarget2, jobject jrevision2, jobject jdepth, jobject jchangelists,
  jboolean jignoreAncestry, jobject jdiffSummaryReceiver)
@@ -1271,7 +1271,7 @@ Java_org_apache_subversion_javahl_SVNCli
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Depth_2Ljava_util_Collection_2ZLorg_apache_subversion_javahl_callback_DiffSummaryCallback_2
+Java_org_apache_subversion_javahl_SVNClient_diffSummarize__Ljava_lang_String_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZLorg_apache_subversion_javahl_callback_DiffSummaryCallback_2
 (JNIEnv *env, jobject jthis, jstring jtarget, jobject jPegRevision,
  jobject jStartRevision, jobject jEndRevision, jobject jdepth,
  jobject jchangelists, jboolean jignoreAncestry,
@@ -1423,7 +1423,7 @@ Java_org_apache_subversion_javahl_SVNCli
 JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_relocate
 (JNIEnv *env, jobject jthis, jstring jfrom, jstring jto, jstring jpath,
- jboolean jrecurse)
+ jboolean jignoreExternals)
 {
   JNIEntry(SVNClient, relocate);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1444,7 +1444,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->relocate(from, to, path, jrecurse ? true: false);
+  cl->relocate(from, to, path, jignoreExternals ? true : false);
   return;
 }
 

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java Sat Dec 11 00:15:55 2010
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl;
 
+import org.apache.subversion.javahl.types.*;
+
 public class ChangePath implements java.io.Serializable
 {
     // Update the serialVersionUID when there is a incompatible change

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Sat Dec 11 00:15:55 2010
@@ -26,6 +26,7 @@ package org.apache.subversion.javahl;
 import java.util.Map;
 import java.util.EventObject;
 import org.apache.subversion.javahl.callback.ClientNotifyCallback;
+import org.apache.subversion.javahl.types.NodeKind;
 
 /**
  * The event passed to the {@link ClientNotifyCallback#onNotify}

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java Sat Dec 11 00:15:55 2010
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl;
 
+import org.apache.subversion.javahl.types.NodeKind;
+
 /**
  * This class describes a item which will be commited.
  */

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java Sat Dec 11 00:15:55 2010
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl;
 
+import org.apache.subversion.javahl.types.NodeKind;
+
 /**
  * The description of a merge conflict, encountered during
  * merge/update/switch operations.

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictVersion.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictVersion.java?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictVersion.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictVersion.java Sat Dec 11 00:15:55 2010
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl;
 
+import org.apache.subversion.javahl.types.NodeKind;
+
 /**
  * The description of a merge conflict, encountered during
  * merge/update/switch operations.

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java Sat Dec 11 00:15:55 2010
@@ -25,6 +25,7 @@ package org.apache.subversion.javahl;
 
 import java.util.EventObject;
 import org.apache.subversion.javahl.callback.DiffSummaryCallback;
+import org.apache.subversion.javahl.types.NodeKind;
 
 /**
  * The event passed to the {@link DiffSummaryCallback#onSummary} API

Modified: subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java
URL: http://svn.apache.org/viewvc/subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java?rev=1044548&r1=1044547&r2=1044548&view=diff
==============================================================================
--- subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java (original)
+++ subversion/branches/ignore-mergeinfo/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java Sat Dec 11 00:15:55 2010
@@ -25,6 +25,8 @@ package org.apache.subversion.javahl;
 
 import java.util.Date;
 
+import org.apache.subversion.javahl.types.NodeKind;
+
 /**
  * A general subversion directory entry. Used for {@link ISVNClient#list}.
  */