You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2010/12/02 21:55:18 UTC

svn commit: r1041580 [2/35] - in /subversion/branches/gpg-agent-password-store: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ build/win32/ contrib/hook-scripts/ contrib/server-side/ notes/http-and-webdav/ notes/wc-ng/ subversio...

Modified: subversion/branches/gpg-agent-password-store/contrib/server-side/fsfsverify.py
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/contrib/server-side/fsfsverify.py?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/contrib/server-side/fsfsverify.py (original)
+++ subversion/branches/gpg-agent-password-store/contrib/server-side/fsfsverify.py Thu Dec  2 20:55:08 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/gpg-agent-password-store/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/gen-make.py?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/gen-make.py (original)
+++ subversion/branches/gpg-agent-password-store/gen-make.py Thu Dec  2 20:55:08 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/gpg-agent-password-store/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/get-deps.sh?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/get-deps.sh (original)
+++ subversion/branches/gpg-agent-password-store/get-deps.sh Thu Dec  2 20:55:08 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/gpg-agent-password-store/notes/http-and-webdav/webdav-usage.html
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/notes/http-and-webdav/webdav-usage.html?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/notes/http-and-webdav/webdav-usage.html (original)
+++ subversion/branches/gpg-agent-password-store/notes/http-and-webdav/webdav-usage.html Thu Dec  2 20:55:08 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/gpg-agent-password-store/notes/wc-ng/copying
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/notes/wc-ng/copying?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/notes/wc-ng/copying (original)
+++ subversion/branches/gpg-agent-password-store/notes/wc-ng/copying Thu Dec  2 20:55:08 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/gpg-agent-password-store/notes/wc-ng/nodes
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/notes/wc-ng/nodes?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/notes/wc-ng/nodes (original)
+++ subversion/branches/gpg-agent-password-store/notes/wc-ng/nodes Thu Dec  2 20:55:08 2010
@@ -155,11 +155,23 @@ simply create rows at a new op_depth.)
   previous existing node, just like it does in WC-1.  A partial revert of
   this state is not a particularly helpful or frequent use case.
 
+  GJS: I believe that wc_db should enable the individual reverts. The
+  first revert will undo the add/copy, and the second revert will undo
+  the delete. The UI (or the next level up in libsvn_wc) can collapse
+  those into a single user action. This leaves us the future
+  possibility of finer-grained reverts.
+
 ### EHU: The statement above probably means that *all* nodes in the subtree
   need to be rewritten: they all have a deleted state with the affected
   op_depth, meaning they probably need a 'replaced/copied-to' state with
   the same op_depth...
 
+  GJS: not all nodes. The newly-arriving copy/move may have
+  new/disjoint nodes that were not part of the deleted set. We will
+  simply add new rows for these arriving nodes. Similarly, the
+  arriving subtree may NOT have a similar node, so the deleted node
+  remains untouched.
+
 
 Copies of mixed-revision subtrees become multiple layers
 --------------------------------------------------------
@@ -191,6 +203,32 @@ become an op_depth layer of their own.
   we have to store the mixed-rev copy flat (single op_depth) and modify the
   commit rules to act on revision-number changes within this flat tree.
 
+  GJS: correct. Consider a root of the subtree at r10, and a
+  descendent is at r12. We cannot create one layer at r10, and another
+  at r12 because we do not have the descendent@r10 to place into the
+  first layer. Thus, we need to use a single op_depth layer for this
+  operation. At commit time, one copy will be me for the subtree from
+  r10, a deletion will be made for the descendent, and then another
+  copy performed for the r12 descendent.
+
+### GJS: in the above scenario, we do not know if the descendent
+  existed in r10, so the deletion may not be necessary (and could even
+  throw an error!). I do not recall if our copy's destination is
+  allowed to exist (ie. we have implied overwrite semantics in the
+  repository).
+
+  PM: Yes, we have overwrite sematics.  The FS layer on the server has
+  magic that converts the copy of the r12 descendant into a replace if
+  the descendant exists in r10.  The client does not send a delete.
+
+  This magic applies to copies, not deletes, so there is a problem
+  when the descendant is deleted in the mixed-revision copy in the
+  working copy.  When faced with a copy of the subtree at r10 and a
+  delete of a descendant at r12 the commit doesn't work at present.
+  Deleting the descendant is wrong if it does not exist in r10, but
+  not deleting it is wrong if it does exist.  I suppose the client
+  could ask the server, or perhaps use multiple layers of BASE to
+  track mixed-revisions (argh!).
 
 In a deleted subtree, all nodes get marked deleted explicitly
 -------------------------------------------------------------
@@ -236,8 +274,18 @@ otherwise, it must be an addition.
 
 TODO:
 
- * Explain the role of the 'deleted-below' columns
-   ### JAF: No, that idea has already been rejected.
+       GJS: yup. tho it will complicate a revert of a copy/move-here
+       since we will need to perform a query to see whether we should
+       convert the copy/move into a deleted node, or whether to simply
+       remove the node entirely.
+
+       GJS: and yes, if wc_db performed a double-operation revert,
+       then we wouldn't have to do this. arguably, we could push the
+       2-op revert to a future release when we also choose to alter
+       the higher layers to bring in the finer-grained control. (or
+       maybe we have to look at prior nodes regardless, so checking
+       for "replace with a deleted node" comes for no additional
+       cost).
 
  * Document states of the table and their meaning (including values
     of the relevant columns)

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/ctypes-python/csvn/repos.py
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/ctypes-python/csvn/repos.py?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/ctypes-python/csvn/repos.py (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/ctypes-python/csvn/repos.py Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/ctypes-python/csvn/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/ctypes-python/csvn/wc.py?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/ctypes-python/csvn/wc.py (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/ctypes-python/csvn/wc.py Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/CreateJ.cpp?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/CreateJ.cpp Thu Dec  2 20:55:08 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;
@@ -690,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;"
@@ -868,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())

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/CreateJ.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/CreateJ.h?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/CreateJ.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/CreateJ.h Thu Dec  2 20:55:08 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);

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/native/EnumMapper.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/EnumMapper.cpp?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/EnumMapper.cpp (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/EnumMapper.cpp Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/native/InfoCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/InfoCallback.cpp?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/InfoCallback.cpp (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/InfoCallback.cpp Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/native/JNIUtil.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/JNIUtil.h?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/JNIUtil.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/JNIUtil.h Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/native/ListCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/ListCallback.cpp?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/ListCallback.cpp (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/ListCallback.cpp Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/SVNClient.cpp?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/SVNClient.cpp Thu Dec  2 20:55:08 2010
@@ -1151,7 +1151,8 @@ jbyteArray SVNClient::revProperty(const 
     return JNIUtil::makeJByteArray((const signed char *)propval->data,
                                    propval->len);
 }
-void SVNClient::relocate(const char *from, const char *to, const char *path)
+void SVNClient::relocate(const char *from, const char *to, const char *path,
+                         bool ignoreExternals)
 {
     SVN::Pool requestPool;
     SVN_JNI_NULL_PTR_EX(path, "path", );
@@ -1171,7 +1172,7 @@ void SVNClient::relocate(const char *fro
         return;
 
     SVN_JNI_ERR(svn_client_relocate2(intPath.c_str(), intFrom.c_str(),
-                                     intTo.c_str(), ctx,
+                                     intTo.c_str(), ignoreExternals, ctx,
                                      requestPool.pool()), );
 }
 
@@ -1460,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/gpg-agent-password-store/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/SVNClient.h?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/SVNClient.h Thu Dec  2 20:55:08 2010
@@ -74,7 +74,8 @@ class SVNClient :public SVNBase
              Revision &revisionStart, Revision &revisionEnd,
              bool ignoreMimeType, bool includeMergedRevisions,
              BlameCallback *callback);
-  void relocate(const char *from, const char *to, const char *path);
+  void relocate(const char *from, const char *to, const char *path,
+                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/gpg-agent-password-store/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Thu Dec  2 20:55:08 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,
@@ -1422,7 +1422,8 @@ 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)
+(JNIEnv *env, jobject jthis, jstring jfrom, jstring jto, jstring jpath,
+ jboolean jignoreExternals)
 {
   JNIEntry(SVNClient, relocate);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1443,7 +1444,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  cl->relocate(from, to, path);
+  cl->relocate(from, to, path, jignoreExternals ? true : false);
   return;
 }
 

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictVersion.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictVersion.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictVersion.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictVersion.java Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java Thu Dec  2 20:55:08 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/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/DirEntry.java Thu Dec  2 20:55:08 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}.
  */

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Thu Dec  2 20:55:08 2010
@@ -24,6 +24,7 @@
 package org.apache.subversion.javahl;
 
 import org.apache.subversion.javahl.callback.*;
+import org.apache.subversion.javahl.types.*;
 
 import java.io.OutputStream;
 import java.util.Collection;
@@ -200,12 +201,12 @@ public interface ISVNClient
     /**
      * Sets a file for deletion.
      * @param path      path or url to be deleted
-     * @param message   if path is a url, this will be the commit message.
      * @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
      * @since 1.5
      */
@@ -262,17 +263,14 @@ public interface ISVNClient
     /**
      * Commits changes to the repository.
      * @param path            files to commit.
-     * @param message         log message.
      * @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.
-     * @return The new revision number created by the commit, or
-     * {@link Revision#SVN_INVALID_REVNUM} if the revision number is
-     * invalid.
      * @throws ClientException
      * @since 1.5
      */
@@ -287,8 +285,6 @@ public interface ISVNClient
      *
      * @param sources A list of <code>CopySource</code> objects.
      * @param destPath Destination path or URL.
-     * @param message Commit message.  May be <code>null</code> if
-     * <code>destPath</code> is not a URL.
      * @param copyAsChild Whether to copy <code>srcPaths</code> as
      * children of <code>destPath</code>.
      * @param makeParents Whether to create intermediate parents
@@ -297,6 +293,8 @@ public interface ISVNClient
      * @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.
      * @since 1.7
      */
@@ -311,8 +309,6 @@ public interface ISVNClient
      *
      * @param srcPaths Source paths or URLs.
      * @param destPath Destination path or URL.
-     * @param message Commit message.  May be <code>null</code> if
-     * <code>destPath</code> is not a URL.
      * @param force Whether to perform the move even if local
      * modifications exist.
      * @param moveAsChild Whether to move <code>srcPaths</code> as
@@ -321,6 +317,8 @@ public interface ISVNClient
      * @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.5
      */
@@ -334,11 +332,11 @@ public interface ISVNClient
      * 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 message   commit message to used if path contains urls
      * @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
      * @since 1.5
      */
@@ -412,7 +410,6 @@ public interface ISVNClient
      * head.
      * @param path      the local path
      * @param url       the target url
-     * @param message   the log message.
      * @param depth     depth to traverse into subdirectories
      * @param noIgnore  whether to add files matched by ignore patterns
      * @param ignoreUnknownNodeTypes whether to ignore files which
@@ -420,6 +417,7 @@ public interface ISVNClient
      * @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
      *
      * @since 1.5
@@ -527,7 +525,7 @@ public interface ISVNClient
      * @param callback               the object to receive the log messages
      * @since 1.7
      */
-    void getMergeinfoLog(MergeinfoLogKind kind, String pathOrUrl,
+    void getMergeinfoLog(Mergeinfo.LogKind kind, String pathOrUrl,
                          Revision pegRevision, String mergeSourceUrl,
                          Revision srcPegRevision, boolean discoverChangedPaths,
                          Depth depth, Set<String> revProps,
@@ -798,10 +796,11 @@ public interface ISVNClient
      * @param from      old url
      * @param to        new url
      * @param path      working copy path
+     * @param ignoreExternals if externals are ignored during relocate
      * @throws ClientException
      * @since 1.0
      */
-    void relocate(String from, String to, String path)
+    void relocate(String from, String to, String path, boolean ignoreExternals)
             throws ClientException;
 
     /**

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java Thu Dec  2 20:55:08 2010
@@ -29,6 +29,7 @@ import java.io.InputStream;
 import java.io.File;
 
 import org.apache.subversion.javahl.callback.ReposNotifyCallback;
+import org.apache.subversion.javahl.types.*;
 
 public interface ISVNRepos {
 

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/Mergeinfo.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/Mergeinfo.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/Mergeinfo.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/Mergeinfo.java Thu Dec  2 20:55:08 2010
@@ -200,4 +200,17 @@ public class Mergeinfo implements java.i
     {
         mergeSources.put(mergeSrc, range);
     }
+
+    /**
+     * Constants to specify which collection of revisions to report in
+     * getMergeinfoLog.
+     */
+    public enum LogKind
+    {
+        /** Revisions eligible for merging from merge-source to merge-target. */
+        eligible,
+
+        /** Revisions already merged from merge-source to merge-target. */
+        merged;
+    }
 }

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java Thu Dec  2 20:55:08 2010
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl;
 
+import org.apache.subversion.javahl.types.Version;
+
 /**
  * Handles activities related to management of native resouces
  * (e.g. loading of native libraries).

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Thu Dec  2 20:55:08 2010
@@ -24,6 +24,7 @@
 package org.apache.subversion.javahl;
 
 import org.apache.subversion.javahl.callback.*;
+import org.apache.subversion.javahl.types.*;
 
 import java.io.OutputStream;
 import java.io.ByteArrayOutputStream;
@@ -349,7 +350,7 @@ public class SVNClient implements ISVNCl
     /**
      * @since 1.7
      */
-    public native void getMergeinfoLog(MergeinfoLogKind kind, String pathOrUrl,
+    public native void getMergeinfoLog(Mergeinfo.LogKind kind, String pathOrUrl,
                                        Revision pegRevision,
                                        String mergeSourceUrl,
                                        Revision srcPegRevision,
@@ -495,7 +496,8 @@ public class SVNClient implements ISVNCl
     /**
      * @since 1.0
      */
-    public native void relocate(String from, String to, String path)
+    public native void relocate(String from, String to, String path,
+                                boolean ignoreExternals)
             throws ClientException;
 
     /**

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java Thu Dec  2 20:55:08 2010
@@ -29,6 +29,7 @@ import java.io.InputStream;
 import java.io.File;
 
 import org.apache.subversion.javahl.callback.ReposNotifyCallback;
+import org.apache.subversion.javahl.types.*;
 
 /**
  * This class offers the same commands as the svnadmin commandline

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/Status.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/Status.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/Status.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/Status.java Thu Dec  2 20:55:08 2010
@@ -25,6 +25,8 @@ package org.apache.subversion.javahl;
 
 import java.util.Date;
 
+import org.apache.subversion.javahl.types.NodeKind;
+
 /**
  * Subversion status API.
  * This describes the status of one subversion item (file or directory) in

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java Thu Dec  2 20:55:08 2010
@@ -23,7 +23,7 @@
 
 package org.apache.subversion.javahl.callback;
 
-import org.apache.subversion.javahl.Info2;
+import org.apache.subversion.javahl.Info;
 import org.apache.subversion.javahl.ISVNClient;
 
 /**
@@ -36,5 +36,5 @@ public interface InfoCallback
      * the method will be called for every line in a file.
      * @param info      the Info2 object
      */
-    public void singleInfo(Info2 info);
+    public void singleInfo(Info info);
 }

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java Thu Dec  2 20:55:08 2010
@@ -122,27 +122,27 @@ public final class Depth
         return (recurse ? unknown : immediates);
     }
     
-    public static org.apache.subversion.javahl.Depth toADepth(int depth)
+    public static org.apache.subversion.javahl.types.Depth toADepth(int depth)
     {
        switch(depth)
        {
             case infinity:
-                return org.apache.subversion.javahl.Depth.infinity;
+                return org.apache.subversion.javahl.types.Depth.infinity;
             case immediates:
-                return org.apache.subversion.javahl.Depth.immediates;
+                return org.apache.subversion.javahl.types.Depth.immediates;
             case files:
-                return org.apache.subversion.javahl.Depth.files;
+                return org.apache.subversion.javahl.types.Depth.files;
             case empty:
-                return org.apache.subversion.javahl.Depth.empty;
+                return org.apache.subversion.javahl.types.Depth.empty;
             case exclude:
-                return org.apache.subversion.javahl.Depth.exclude;
+                return org.apache.subversion.javahl.types.Depth.exclude;
             case unknown:
             default:
-                return org.apache.subversion.javahl.Depth.unknown;
+                return org.apache.subversion.javahl.types.Depth.unknown;
        }
     }
 
-    public static int fromADepth(org.apache.subversion.javahl.Depth aDepth)
+    public static int fromADepth(org.apache.subversion.javahl.types.Depth aDepth)
     {
         switch(aDepth)
         {

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info.java Thu Dec  2 20:55:08 2010
@@ -144,7 +144,7 @@ public class Info implements java.io.Ser
     /**
      * A backward-compat constructor
      */
-    public Info(org.apache.subversion.javahl.Info2 aInfo)
+    public Info(org.apache.subversion.javahl.Info aInfo)
     {
         this((new File(aInfo.getPath())).getName(), aInfo.getUrl(),
              aInfo.getReposUUID(), aInfo.getReposRootUrl(),
@@ -153,7 +153,7 @@ public class Info implements java.io.Ser
              aInfo.getLastChangedAuthor(), aInfo.getRev(),
              aInfo.getLastChangedRev(), aInfo.getLastChangedDate(),
              aInfo.getTextTime(), aInfo.getPropTime(), aInfo.getCopyFromUrl() != null,
-             aInfo.getSchedule() == org.apache.subversion.javahl.Info2.ScheduleKind.delete,
+             aInfo.getSchedule() == org.apache.subversion.javahl.Info.ScheduleKind.delete,
              checkAbsent(aInfo.getPath()), checkIncomplete(aInfo.getPath()),
              aInfo.getCopyFromRev(), aInfo.getCopyFromUrl());
     }

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info2.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info2.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info2.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info2.java Thu Dec  2 20:55:08 2010
@@ -250,7 +250,7 @@ public class Info2 implements java.io.Se
     /**
      * A backward-compat constructor.
      */
-    public Info2(org.apache.subversion.javahl.Info2 aInfo)
+    public Info2(org.apache.subversion.javahl.Info aInfo)
     {
         this(aInfo.getPath(), aInfo.getUrl(), aInfo.getRev(),
              NodeKind.fromApache(aInfo.getKind()),

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NodeKind.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NodeKind.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NodeKind.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NodeKind.java Thu Dec  2 20:55:08 2010
@@ -61,7 +61,7 @@ public final class NodeKind
         return statusNames[kind];
     }
 
-    public static int fromApache(org.apache.subversion.javahl.NodeKind aKind)
+    public static int fromApache(org.apache.subversion.javahl.types.NodeKind aKind)
     {
         switch(aKind)
         {

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java Thu Dec  2 20:55:08 2010
@@ -1489,7 +1489,7 @@ public class SVNClient implements SVNCli
         try
         {
             aSVNClient.getMergeinfoLog(
-                org.apache.subversion.javahl.MergeinfoLogKind.values()[kind],
+                org.apache.subversion.javahl.Mergeinfo.LogKind.values()[kind],
                 pathOrUrl, pegRevision == null ? null : pegRevision.toApache(),
                 mergeSourceUrl,
                 srcPegRevision == null ? null : srcPegRevision.toApache(),
@@ -2125,7 +2125,7 @@ public class SVNClient implements SVNCli
 
         try
         {
-            aSVNClient.relocate(from, to, path);
+            aSVNClient.relocate(from, to, path, true);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -2348,15 +2348,15 @@ public class SVNClient implements SVNCli
     {
         try
         {
-        	final List<org.apache.subversion.javahl.Info2> infos =
-        		new ArrayList<org.apache.subversion.javahl.Info2>();
+        	final List<org.apache.subversion.javahl.Info> infos =
+        		new ArrayList<org.apache.subversion.javahl.Info>();
         	aSVNClient.info2(path,
         					org.apache.subversion.javahl.Revision.HEAD,
         					org.apache.subversion.javahl.Revision.HEAD,
-        					org.apache.subversion.javahl.Depth.empty,
+        					org.apache.subversion.javahl.types.Depth.empty,
         				    null, new org.apache.subversion.javahl.callback.InfoCallback()
         	{
-				public void singleInfo(org.apache.subversion.javahl.Info2 info) {
+				public void singleInfo(org.apache.subversion.javahl.Info info) {
 					infos.add(info);
 				}
         	});
@@ -2593,7 +2593,7 @@ public class SVNClient implements SVNCli
                           Depth.toADepth(depth), changelists == null ? null
                             : Arrays.asList(changelists),
         new org.apache.subversion.javahl.callback.InfoCallback () {
-            public void singleInfo(org.apache.subversion.javahl.Info2 aInfo)
+            public void singleInfo(org.apache.subversion.javahl.Info aInfo)
             {
                 callback.singleInfo(aInfo == null ? null : new Info2(aInfo));
             }

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Version.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Version.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Version.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Version.java Thu Dec  2 20:55:08 2010
@@ -30,14 +30,14 @@ package org.tigris.subversion.javahl;
  */
 public class Version
 {
-    private org.apache.subversion.javahl.Version aVersion;
+    private org.apache.subversion.javahl.types.Version aVersion;
 
     public Version()
     {
-        aVersion = new org.apache.subversion.javahl.Version();
+        aVersion = new org.apache.subversion.javahl.types.Version();
     }
 
-    public Version(org.apache.subversion.javahl.Version aVersion)
+    public Version(org.apache.subversion.javahl.types.Version aVersion)
     {
         this.aVersion = aVersion;
     }

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Thu Dec  2 20:55:08 2010
@@ -23,6 +23,7 @@
 package org.apache.subversion.javahl;
 
 import org.apache.subversion.javahl.callback.*;
+import org.apache.subversion.javahl.types.*;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -452,7 +453,7 @@ public class BasicTests extends SVNTests
                  client.update(thisTest.getWCPathSet("/A/B"),
                                null, Depth.unknown, false, false, false)[0],
                      rev);
-        Info2 Binfo = collectInfos(thisTest.getWCPath() + "/A/B", null, null,
+        Info Binfo = collectInfos(thisTest.getWCPath() + "/A/B", null, null,
                                    Depth.empty, null)[0];
         long BCommitDate = Binfo.getLastChangedDate().getTime();
         long BCommitRev = rev;
@@ -1959,12 +1960,12 @@ public class BasicTests extends SVNTests
         OneTest thisTest = new OneTest();
 
         // get the item information and test it
-        Info2 info = collectInfos(thisTest.getWCPath()+"/A/mu", null, null,
+        Info info = collectInfos(thisTest.getWCPath()+"/A/mu", null, null,
                                   Depth.empty, null)[0];
         assertEquals("wrong revision from info", 1,
                      info.getLastChangedRev());
         assertEquals("wrong schedule kind from info",
-                     Info2.ScheduleKind.normal, info.getSchedule());
+                     Info.ScheduleKind.normal, info.getSchedule());
         assertEquals("wrong node kind from info", NodeKind.file,
                      info.getKind());
     }
@@ -2085,13 +2086,13 @@ public class BasicTests extends SVNTests
         OneTest thisTest = new OneTest();
 
         final String failureMsg = "Incorrect number of info objects";
-        Info2[] infos = collectInfos(thisTest.getWCPath(), null, null,
+        Info[] infos = collectInfos(thisTest.getWCPath(), null, null,
                                      Depth.empty, null);
         assertEquals(failureMsg, 1, infos.length);
         infos = collectInfos(thisTest.getWCPath(), null, null, Depth.infinity,
                              null);
         assertEquals(failureMsg, 21, infos.length);
-        for (Info2 info : infos)
+        for (Info info : infos)
         {
             assertNull("Unexpected changelist present",
                        info.getChangelistName());
@@ -2204,7 +2205,7 @@ public class BasicTests extends SVNTests
         if (expectedAvailableStart > 0)
         {
             long[] availableRevs =
-                    getMergeinfoRevisions(MergeinfoLogKind.eligible, targetPath,
+                    getMergeinfoRevisions(Mergeinfo.LogKind.eligible, targetPath,
                                           Revision.HEAD, mergeSrc,
                                           Revision.HEAD);
             assertNotNull("Missing eligible merge info on '"+targetPath + '\'',
@@ -2220,7 +2221,7 @@ public class BasicTests extends SVNTests
      * are no revisions to return.
      * @since 1.5
      */
-    private long[] getMergeinfoRevisions(MergeinfoLogKind kind,
+    private long[] getMergeinfoRevisions(Mergeinfo.LogKind kind,
                                          String pathOrUrl,
                                          Revision pegRevision,
                                          String mergeSourceUrl,
@@ -3486,13 +3487,13 @@ public class BasicTests extends SVNTests
     }
 
     private class MyInfoCallback implements InfoCallback {
-        private Info2 info;
+        private Info info;
 
-        public void singleInfo(Info2 info) {
+        public void singleInfo(Info info) {
             this.info = info;
         }
 
-        public Info2 getInfo() {
+        public Info getInfo() {
             return info;
         }
     }
@@ -3627,19 +3628,19 @@ public class BasicTests extends SVNTests
         return callback.getDirEntryArray();
     }
 
-    private Info2[] collectInfos(String pathOrUrl, Revision revision,
+    private Info[] collectInfos(String pathOrUrl, Revision revision,
                                  Revision pegRevision, Depth depth,
                                  Collection<String> changelists)
         throws ClientException
     {
-       final List<Info2> infos = new ArrayList<Info2>();
+       final List<Info> infos = new ArrayList<Info>();
        
         client.info2(pathOrUrl, revision, pegRevision, depth, changelists,
                      new InfoCallback () {
-            public void singleInfo(Info2 info)
+            public void singleInfo(Info info)
             { infos.add(info); }           
         });
-        return infos.toArray(new Info2[infos.size()]);
+        return infos.toArray(new Info[infos.size()]);
     }
 
     private LogMessage[] collectLogMessages(String path, Revision pegRevision,

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java Thu Dec  2 20:55:08 2010
@@ -23,6 +23,7 @@
 package org.apache.subversion.javahl;
 
 import org.apache.subversion.javahl.callback.*;
+import org.apache.subversion.javahl.types.*;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -109,10 +110,10 @@ public class SVNReposTests extends SVNTe
         OneTest thisTest = new OneTest(false,false);
         // verify zero revisions in new repos
         URI repoUrl = makeReposUrl(thisTest.getRepository());
-        final Info2[] infoHolder = new Info2[1];
+        final Info[] infoHolder = new Info[1];
         InfoCallback mycallback = new InfoCallback()
         {
-            public void singleInfo(Info2 info)
+            public void singleInfo(Info info)
             {
                 infoHolder[0] = info;
             }

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Thu Dec  2 20:55:08 2010
@@ -23,6 +23,7 @@
 package org.apache.subversion.javahl;
 
 import org.apache.subversion.javahl.callback.*;
+import org.apache.subversion.javahl.types.*;
 
 import java.io.File;
 import java.io.FileInputStream;

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java Thu Dec  2 20:55:08 2010
@@ -32,6 +32,8 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Date;
 
+import org.apache.subversion.javahl.types.NodeKind;
+
 import junit.framework.Assert;
 /**
  * This class describe the expected state of the working copy

Modified: subversion/branches/gpg-agent-password-store/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/gpg-agent-password-store/subversion/bindings/swig/include/svn_containers.swg?rev=1041580&r1=1041579&r2=1041580&view=diff
==============================================================================
--- subversion/branches/gpg-agent-password-store/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/gpg-agent-password-store/subversion/bindings/swig/include/svn_containers.swg Thu Dec  2 20:55:08 2010
@@ -863,3 +863,13 @@
 %typemap(argout) apr_array_header_t **RANGELIST_INOUT =
    apr_array_header_t **RANGELIST;
 #endif
+
+/* -----------------------------------------------------------------------
+   Output of apr_array_header_t * <svn_auth_provider_object_t *>
+*/
+#ifdef SWIGPERL
+%typemap(argout) apr_array_header_t **providers {
+  %append_output(svn_swig_pl_convert_array(*$1,
+                    $descriptor(svn_auth_provider_object_t *)));
+}
+#endif