You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by vm...@apache.org on 2012/12/24 04:44:19 UTC

svn commit: r1425583 - in /subversion/branches/javahl-ra: ./ notes/directory-index/ subversion/bindings/swig/include/ subversion/include/ subversion/libsvn_client/ subversion/libsvn_diff/ subversion/libsvn_fs_fs/ subversion/libsvn_ra/ subversion/libsvn...

Author: vmpn
Date: Mon Dec 24 03:44:17 2012
New Revision: 1425583

URL: http://svn.apache.org/viewvc?rev=1425583&view=rev
Log:
On the javahl-ra branch:

Bring up-to-date with trunk@1399485

Modified:
    subversion/branches/javahl-ra/   (props changed)
    subversion/branches/javahl-ra/CHANGES
    subversion/branches/javahl-ra/notes/directory-index/dirindex.py
    subversion/branches/javahl-ra/notes/directory-index/schema.sql
    subversion/branches/javahl-ra/subversion/bindings/swig/include/svn_types.swg
    subversion/branches/javahl-ra/subversion/include/svn_ra.h
    subversion/branches/javahl-ra/subversion/include/svn_repos.h
    subversion/branches/javahl-ra/subversion/libsvn_client/copy.c
    subversion/branches/javahl-ra/subversion/libsvn_client/merge.c
    subversion/branches/javahl-ra/subversion/libsvn_diff/parse-diff.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/javahl-ra/subversion/libsvn_ra/deprecated.c
    subversion/branches/javahl-ra/subversion/libsvn_ra/editor.c
    subversion/branches/javahl-ra/subversion/libsvn_ra/ra_loader.c
    subversion/branches/javahl-ra/subversion/libsvn_repos/commit.c
    subversion/branches/javahl-ra/subversion/libsvn_repos/deprecated.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/gpg_agent.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/named_atomic.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/sysinfo.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/utf.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/conflicts.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/update_editor.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db_util.c
    subversion/branches/javahl-ra/subversion/mod_dav_svn/repos.c
    subversion/branches/javahl-ra/subversion/svn/conflict-callbacks.c
    subversion/branches/javahl-ra/subversion/svn/proplist-cmd.c
    subversion/branches/javahl-ra/subversion/svnserve/serve.c
    subversion/branches/javahl-ra/subversion/tests/cmdline/copy_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py
    subversion/branches/javahl-ra/subversion/tests/libsvn_subr/auth-test.c
    subversion/branches/javahl-ra/subversion/tests/libsvn_wc/conflict-data-test.c
    subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c

Propchange: subversion/branches/javahl-ra/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1399073-1399485

Modified: subversion/branches/javahl-ra/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/CHANGES?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/CHANGES (original)
+++ subversion/branches/javahl-ra/CHANGES Mon Dec 24 03:44:17 2012
@@ -4,7 +4,7 @@ http://svn.apache.org/repos/asf/subversi
 
  User-visible changes:
   - General:
-    * remove extraneous externals output from 'svn status -q' (issue #1935)
+    *
 
   - Major new features:
     *
@@ -12,6 +12,7 @@ http://svn.apache.org/repos/asf/subversi
   - Minor new features and improvements:
     * new 'svnadmin load --revision' load filtering support (issue #3734)
     * new 'commit --include-externals' option (related to issues #1167, #3563)
+    * remove extraneous externals output from 'svn status -q' (issue #1935)
     * new 'svnadmin hotcopy --incremental' support for FSFS (issue #3815)
     * reject some attempts to merge between unrelated branches (r1215273)
     * support GPG agent for password storage on UNIX-like platforms (r1150783)

Modified: subversion/branches/javahl-ra/notes/directory-index/dirindex.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/directory-index/dirindex.py?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/directory-index/dirindex.py (original)
+++ subversion/branches/javahl-ra/notes/directory-index/dirindex.py Mon Dec 24 03:44:17 2012
@@ -42,7 +42,6 @@ class SQLclass(object):
     def __init__(self):
         import cStringIO
         import pkgutil
-        import re
 
         comment_rx = re.compile(r"\s*--.*$")
         header_rx = re.compile(r"^---(?P<kind>STATEMENT|SCRIPT)"
@@ -215,7 +214,6 @@ class Txn(SQLobject):
             self.created = self._now()
         super(Txn, self)._put(cursor)
         if self.treeid is None:
-            SQL.TXN_UPDATE_INITIAL_TREEID(cursor, id = self.id)
             self.treeid = self.id
 
     @classmethod
@@ -253,49 +251,6 @@ class Txn(SQLobject):
         SQL.TXN_CLEANUP(cursor, id = self.id)
 
 
-class Branch(SQLobject):
-    """O/R mapping for the "branch" table."""
-
-    _columns = ("id", "treeid", "nodeid", "origin", "state")
-    _put_statement = SQL.BRANCH_INSERT
-    _get_statement = SQL.BRANCH_GET
-
-    # state
-    TRANSIENT = "T"
-    PERMANENT = "P"
-
-    def __init__(self, **kwargs):
-        super(Branch, self).__init__(**kwargs)
-        if self.state is None:
-            self.state = self.TRANSIENT
-
-    def _put(self, cursor):
-        super(Branch, self)._put(cursor)
-        if self.nodeid is None:
-            SQL.BRANCH_UPDATE_INITIAL_NODEID(cursor, id = self.id)
-            self.nodeid = self.id
-
-    @classmethod
-    def _update_treeid(cls, cursor, new_txn, old_txn):
-        SQL.BRANCH_UPDATE_TREEID(cursor,
-                                 new_treeid = new_txn.treeid,
-                                 old_treeid = old_txn.treeid)
-
-    @classmethod
-    def _history(cls, cursor, nodeid):
-        SQL.BRANCH_HISTORY(cursor, nodeid = nodeid)
-        for row in cursor:
-            yield cls._from_row(row)
-
-    @classmethod
-    def _commit(cls, cursor, txn):
-        SQL.BRANCH_COMMIT(cursor, treeid = txn.treeid)
-
-    @classmethod
-    def _cleanup(cls, cursor, txn):
-        SQL.BRANCH_CLEANUP(cursor, treeid = txn.treeid)
-
-
 class NodeRev(SQLobject):
     """O/R mapping for the noderev/string/nodeview table."""
 
@@ -330,8 +285,8 @@ class NodeRev(SQLobject):
             self.state = self.TRANSIENT
 
     def __str__(self):
-        return "%d %c %s%s" % (self.treeid, self.opcode, self.name,
-                               self._isdir and '/' or '')
+        return "%d(%d) %c %s%s" % (self.id, self.treeid, self.opcode,
+                                   self.name, self._isdir and '/' or '')
 
     # Opcode names
     __opnames = {ADD: "add",
@@ -384,6 +339,10 @@ class NodeRev(SQLobject):
                 assert self.dename is not None
                 self.denameid = self.__stringid(cursor, self.dename)
         super(NodeRev, self)._put(cursor)
+        if self.nodeid is None:
+            self.nodeid = self.id
+        if self.branch is None:
+            self.branch = self.id
 
     @classmethod
     def _update_treeid(cls, cursor, new_txn, old_txn):
@@ -472,10 +431,6 @@ class NodeRev(SQLobject):
         track.close(cls.__find(cursor, parent.branch, parts[-1], txn))
         return track
 
-    def _count_successors(self, cursor):
-        SQL.NODEREV_COUNT_SUCCESSORS(cursor, origin = self.id)
-        return int(cursor.fetchone()[0])
-
     def _listdir(self, cursor, txn):
         assert self._isdir
         if txn.state != txn.PERMANENT:
@@ -501,17 +456,13 @@ class NodeRev(SQLobject):
 
     def _branch(self, cursor, parent, txn, replaced=False):
         assert txn._uncommitted
-        branch = Branch(treeid = txn.treeid,
-                        nodeid = self.nodeid,
-                        origin = self.branch)
-        branch._put(cursor)
         if self._isdir:
             opcode = replaced and self.LAZY_BREPLACE or self.LAZY
         else:
             opcode = replaced and self.BREPLACE or self.BRANCH
         node = self._revise(opcode, txn)
         node.parent = parent.id
-        node.branch = branch.id
+        node.branch = None
         node._put(cursor)
         return node
 
@@ -519,7 +470,9 @@ class NodeRev(SQLobject):
         assert txn._uncommitted
         noderev = NodeRev._clone(self)
         noderev.treeid = txn.treeid
+        noderev.origin = self.id
         noderev.opcode = opcode
+        return noderev
 
     __readonly = frozenset(("name",))
     def __setitem__(self, key, value):
@@ -528,7 +481,10 @@ class NodeRev(SQLobject):
         if key == "dename":
             name = self.__normtext(value)
             value = self.__text(value)
-            super(NodeRev, self).__setitem__("name", name)
+            if name != self.name:
+                super(NodeRev, self).__setitem__("name", name)
+                super(NodeRev, self).__setitem__("nameid", None)
+            super(NodeRev, self).__setitem__("denameid", None)
         super(NodeRev, self).__setitem__(key, value)
 
     def __getitem__(self, key):
@@ -680,12 +636,10 @@ class Index(object):
     def commit_txn(self, txn, revision):
         txn._commit(self.cursor, revision)
         NodeRev._commit(self.cursor, txn)
-        Branch._commit(self.cursor, txn)
 
     def abort_txn(self, txn):
         txn._abort(self.cursor)
         NodeRev._cleanup(self.cursor, txn)
-        Branch._cleanup(self.cursor, txn)
         txn._cleanup(self.cursor)
 
     def listdir(self, txn, noderev):
@@ -743,11 +697,9 @@ class Index(object):
             newnode = origin._branch(self.cursor, parent.id, txn,
                                      replaced = (oldnode is not None))
         else:
-            branch = Branch(treeid = txn.treeid)
-            branch._put(self.cursor)
             newnode = NodeRev(treeid = txn.treeid,
-                              nodeid = branch.nodeid,
-                              branch = branch.id,
+                              nodeid = None,
+                              branch = None,
                               parent = parent.id,
                               kind = kind,
                               opcode = opcode)
@@ -777,6 +729,45 @@ class Tree(object):
         index.rollback()
 
 
+__greek_tree = {
+    'iota': 'file',
+    'A': {
+        'mu': 'file',
+        'B': {
+            'lambda': 'file',
+            'E': {
+                'alpha': 'file',
+                'beta': 'file'},
+            'F': 'dir'},
+        'C': 'dir',
+        'D': {
+            'G': {
+                'pi': 'file',
+                'rho': 'file',
+                'tau': 'file'},
+            'H': {
+                'chi': 'file',
+                'psi': 'file',
+                'omega': 'file'}
+            }
+        }
+    }
+def greektree(ix, tx):
+    def populate(track, items):
+        print 'Populating', track
+        for name, kind in items.iteritems():
+            if kind == 'file':
+                node = ix.add(tx, track, name, NodeRev.FILE)
+            else:
+                node = ix.add(tx, track, name, NodeRev.DIR)
+            print 'Added', node, 'node:', node.noderev
+            if isinstance(kind, dict):
+                populate(node, kind)
+
+    root = ix.lookup(tx)
+    populate(root, __greek_tree)
+
+
 def simpletest(database):
     ix = Index(database)
     ix.initialize()
@@ -789,37 +780,34 @@ def simpletest(database):
         print "root track:", root
         print "root noderev", root.noderev
 
-        print "Add A/foo"
+        print 'Create greek tree'
         tx = ix.new_txn(0)
         print "transaction:", tx
-        parent = ix.add(tx, root, "A", NodeRev.DIR)
-        print "A track:", parent
-        print "A noderev", parent.noderev
-
-        node = ix.add(tx, parent, "foo", NodeRev.FILE)
-        print "foo track:", node
-        print "foo noderev", node.noderev
+        greektree(ix, tx)
         ix.commit_txn(tx, 1)
         ix.commit()
 
+
+        def listdir(noderev, prefix):
+            for n in ix.listdir(tx, noderev):
+                print prefix, str(n)
+                if n._isdir:
+                    listdir(n, prefix + "  ")
+
         print "List contents"
         tx = ix.get_txn()
         print "transaction:", tx
         root = ix.lookup(tx)
         print str(root.noderev)
-        for n1 in ix.listdir(tx, root.noderev):
-            print " ", str(n1)
-            if n1._isdir:
-                for n2 in ix.listdir(tx, n1):
-                    print "   ", str(n2)
-
-        print "Lookup A"
-        track = ix.lookup(tx, None, "A")
-        print str(track.noderev)
-
-        print "Lookup A/foo"
-        track = ix.lookup(tx, None, "A/foo")
-        print str(track.noderev)
+        listdir(root.noderev, " ")
+
+        print "Lookup iota"
+        track = ix.lookup(tx, None, "iota")
+        print str(track), str(track.noderev)
+
+        print "Lookup A/D/H/psi"
+        track = ix.lookup(tx, None, "A/D/H/psi")
+        print str(track), str(track.noderev)
     finally:
         ix.close()
 

Modified: subversion/branches/javahl-ra/notes/directory-index/schema.sql
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/directory-index/schema.sql?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/directory-index/schema.sql (original)
+++ subversion/branches/javahl-ra/notes/directory-index/schema.sql Mon Dec 24 03:44:17 2012
@@ -22,7 +22,6 @@
 DROP VIEW IF EXISTS nodeview;
 DROP TABLE IF EXISTS noderev;
 DROP TABLE IF EXISTS string;
-DROP TABLE IF EXISTS branch;
 DROP TABLE IF EXISTS txn;
 
 
@@ -61,36 +60,10 @@ CREATE TABLE txn (
 
 CREATE INDEX txn_revision_idx ON txn(revision);
 
-
--- Branches -- unique forks in the nodes' history
-CREATE TABLE branch (
-  -- branch identifier
-  id        integer NOT NULL PRIMARY KEY,
-
-  -- the transaction in which the branch was created
-  treeid    integer NOT NULL REFERENCES txn(id),
-
-  -- the node to which this branch belongs; refers to the initial
-  -- branch of the node
-  nodeid    integer NULL REFERENCES branch(id),
-
-  -- the source branch from which this branch was forked
-  origin    integer NULL REFERENCES branch(id),
-
-  -- mark branches in uncommitted transactions so that they can be
-  -- ignored by branch traversals
-  -- T = transient (uncommitted), P = permanent (committed)
-  state     character(1) NOT NULL DEFAULT 'T',
-
-  -- sanity check: enumerated value validation
-  CONSTRAINT enumeration_validation CHECK (state IN ('T', 'P')),
-
-  -- sanity check: ye can't be yer own daddy
-  CONSTRAINT genetic_diversity CHECK (id <> origin)
-);
-
-CREATE INDEX branch_txn_idx ON branch(treeid);
-CREATE INDEX branch_node_idx ON branch(nodeid);
+CREATE TRIGGER txn_ensure_treeid AFTER INSERT ON txn
+BEGIN
+  UPDATE txn SET treeid = NEW.id WHERE treeid IS NULL AND id = NEW.id;
+END;
 
 
 -- File names -- lookup table of strings
@@ -108,18 +81,19 @@ CREATE TABLE noderev (
   -- the transaction in which the node was changed
   treeid    integer NOT NULL REFERENCES txn(id),
 
-  -- the node identifier; a new node will get the ID of its initial
-  -- branch
-  nodeid    integer NOT NULL REFERENCES branch(id),
+  -- the node identifier
+  -- a new node will get the ID of its initial noderev.id
+  nodeid    integer NULL REFERENCES noderev(id),
 
   -- this node revision's immediate predecessor
   origin    integer NULL REFERENCES noderev(id),
 
   -- the parent (directory) of this node revision -- tree graph
-  parent    integer NULL REFERENCES branch(id),
+  parent    integer NULL REFERENCES noderev(id),
 
   -- the branch that this node revision belongs to -- history graph
-  branch    integer NOT NULL REFERENCES branch(id),
+  -- a new branch will get the ID of its initial noderev.id
+  branch    integer NULL REFERENCES noderev(id),
 
   -- the indexable, NFC-normalized name of this noderev within its parent
   nameid    integer NOT NULL REFERENCES string(id),
@@ -171,8 +145,15 @@ CREATE TABLE noderev (
 CREATE UNIQUE INDEX noderev_tree_idx ON noderev(parent,nameid,treeid,opcode);
 CREATE INDEX noderev_txn_idx ON noderev(treeid);
 CREATE INDEX nodefev_node_idx ON noderev(nodeid);
+CREATE INDEX noderev_branch_idx ON noderev(branch);
 CREATE INDEX noderev_successor_idx ON noderev(origin);
 
+CREATE TRIGGER noderev_ensure_node_and_branch AFTER INSERT ON noderev
+BEGIN
+    UPDATE noderev SET nodeid = NEW.id WHERE nodeid IS NULL AND id = NEW.id;
+    UPDATE noderev SET branch = NEW.id WHERE branch IS NULL AND id = NEW.id;
+END;
+
 
 CREATE VIEW nodeview AS
   SELECT
@@ -188,7 +169,6 @@ CREATE VIEW nodeview AS
 
 INSERT INTO txn (id, treeid, revision, created, state)
   VALUES (0, 0, 0, 'EPOCH', 'P');
-INSERT INTO branch (id, treeid, nodeid, state) VALUES (0, 0, 0, 'P');
 INSERT INTO string (id, val) VALUES (0, '');
 INSERT INTO noderev (id, treeid, nodeid, branch,
                      nameid, denameid, kind, opcode, state)
@@ -199,9 +179,6 @@ INSERT INTO noderev (id, treeid, nodeid,
 INSERT INTO txn (treeid, revision, created, author)
   VALUES (:treeid, :revision, :created, :author);
 
----STATEMENT TXN_UPDATE_INITIAL_TREEID
-UPDATE txn SET treeid = :id WHERE id = :id;
-
 ---STATEMENT TXN_GET
 SELECT * FROM txn WHERE id = :id;
 
@@ -230,28 +207,6 @@ UPDATE txn SET state = 'D' WHERE id = :i
 ---STATEMENT TXN_CLEANUP
 DELETE FROM txn WHERE id = :id;
 
----STATEMENT BRANCH_INSERT
-INSERT INTO branch (nodeid, treeid, origin)
-  VALUES (:nodeid, :treeid, :origin);
-
----STATEMENT BRANCH_UPDATE_INITIAL_NODEID
-UPDATE branch SET nodeid = :id WHERE id = :id;
-
----STATEMENT BRANCH_UPDATE_TREEID
-UPDATE branch SET treeid = :new_treeid WHERE treeid = :old_treeid;
-
----STATEMENT BRANCH_GET
-SELECT * FROM branch WHERE id = :id;
-
----STATEMENT BRANCH_HISTORY
-SELECT * from branch WHERE nodeid = :nodeid ORDER BY id ASC;
-
----STATEMENT BRANCH_COMMIT
-UPDATE branch SET state = 'P' WHERE treeid = :treeid;
-
----STATEMENT BRANCH_CLEANUP
-DELETE FROM branch WHERE treeid = :treeid;
-
 ---STATEMENT STRING_INSERT
 INSERT INTO string (val) VALUES (:val);
 
@@ -273,9 +228,6 @@ UPDATE noderev SET opcode = :opcode WHER
 ---STATEMENT NODEVIEW_GET
 SELECT * FROM nodeview WHERE id = :id;
 
----STATEMENT NODEREV_COUNT_SUCCESSORS
-SELECT COUNT(id) FROM noderev WHERE origin = :origin;
-
 ---STATEMENT NODEREV_COMMIT
 UPDATE noderev SET state = 'P' WHERE treeid = :treeid;
 
@@ -309,7 +261,8 @@ ORDER BY treeid DESC LIMIT 1;
 ---STATEMENT NODEVIEW_LIST_DIRECTORY
 SELECT * FROM nodeview
   JOIN (SELECT nameid, MAX(treeid) AS treeid FROM noderev
-        WHERE treeid <= :treeid AND state = 'P') AS filter
+        WHERE treeid <= :treeid AND state = 'P'
+        GROUP BY nameid) AS filter
     ON nodeview.nameid = filter.nameid AND nodeview.treeid = filter.treeid
 WHERE parent = :parent AND opcode <> 'D'
 ORDER BY nodeview.name ASC;
@@ -317,7 +270,8 @@ ORDER BY nodeview.name ASC;
 ---STATEMENT NODEVIEW_LIST_TRANSIENT_DIRECTORY
 SELECT * FROM nodeview
   JOIN (SELECT nameid, MAX(treeid) AS treeid FROM noderev
-        WHERE treeid < :treeid AND state = 'P' OR treeid = :treeid) AS filter
+        WHERE treeid < :treeid AND state = 'P' OR treeid = :treeid
+        GROUP BY nameid) AS filter
     ON nodeview.nameid = filter.name AND nodeview.treeid = filter.treeid
 WHERE parent = :parent AND opcode <> 'D'
 ORDER BY nodeview.name ASC;

Modified: subversion/branches/javahl-ra/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/swig/include/svn_types.swg?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/javahl-ra/subversion/bindings/swig/include/svn_types.swg Mon Dec 24 03:44:17 2012
@@ -793,10 +793,17 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
    Callback: svn_commit_callback2_t
    svn_ra get_commit_editor2()
    svn_repos_get_commit_editor4()
+   svn_client_mkdir4() 
+   svn_client_delete4() 
+   svn_client_import4() 
+   svn_client_commit5() 
+   svn_client_copy6() 
+   svn_client_move6() 
+   svn_client_propset_remote() 
 */
 
 #ifdef SWIGPERL
-%typemap(in) (svn_commit_callback2_t callback, void *callback_baton) {
+%typemap(in) (svn_commit_callback2_t commit_callback, void *commit_baton) {
     $1 = svn_swig_pl_thunk_commit_callback2;
     $2 = (void *)$input;
     svn_swig_pl_hold_ref_in_pool (_global_pool, $input);
@@ -804,20 +811,20 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
 #endif
 
 #ifdef SWIGRUBY
-%typemap(in) (svn_commit_callback2_t callback, void *callback_baton)
+%typemap(in) (svn_commit_callback2_t commit_callback, void *commit_baton)
 {
   $1 = svn_swig_rb_commit_callback2;
   $2 = (void *)svn_swig_rb_make_baton($input, _global_svn_swig_rb_pool);
 };
 
-%typemap(argout) (svn_commit_callback2_t callback, void *callback_baton)
+%typemap(argout) (svn_commit_callback2_t commit_callback, void *commit_baton)
 {
   svn_swig_rb_set_baton($result, (VALUE)$2);
 };
 #endif
 
 #ifdef SWIGPYTHON
-%typemap(in) (svn_commit_callback2_t callback, void *callback_baton)
+%typemap(in) (svn_commit_callback2_t commit_callback, void *commit_baton)
 {
   $1 = svn_swig_py_commit_callback2;
   $2 = (void *)$input;
@@ -825,29 +832,6 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
 #endif
 
 /* -----------------------------------------------------------------------
-   Callback: svn_commit_callback2_t
-   svn_client_mkdir4() 
-   svn_client_delete4() 
-   svn_client_import4() 
-   svn_client_commit5() 
-   svn_client_copy6() 
-   svn_client_move6() 
-   svn_client_propset_remote() 
-
-   A separate typemap is needed here because we used different variable names
-   in the client library functions than we used in the ra/repos library
-   functions.
-*/
-
-#ifdef SWIGPERL
-%typemap(in) (svn_commit_callback2_t commit_callback, void *commit_baton) {
-    $1 = svn_swig_pl_thunk_commit_callback2;
-    $2 = (void *)$input;
-    svn_swig_pl_hold_ref_in_pool (_global_pool, $input);
-};
-#endif
-
-/* -----------------------------------------------------------------------
    Callback: svn_cancel_func_t
 */
 

Modified: subversion/branches/javahl-ra/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/include/svn_ra.h?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/include/svn_ra.h (original)
+++ subversion/branches/javahl-ra/subversion/include/svn_ra.h Mon Dec 24 03:44:17 2012
@@ -874,12 +874,12 @@ svn_ra_rev_prop(svn_ra_session_t *sessio
  * or @c SVN_PROP_REVISION_AUTHOR.
  *
  * Before @c close_edit returns, but after the commit has succeeded,
- * it will invoke @a callback (if non-NULL) with the new revision number,
- * the commit date (as a <tt>const char *</tt>), commit author (as a
- * <tt>const char *</tt>), and @a callback_baton as arguments.  If
- * @a callback returns an error, that error will be returned from @c
- * close_edit, otherwise @c close_edit will return successfully
- * (unless it encountered an error before invoking @a callback).
+ * it will invoke @a commit_callback (if non-NULL) with filled-in
+ * #svn_commit_info_t *, @a commit_baton, and @a pool or some subpool
+ * thereof as arguments.  If @a commit_callback returns an error, that error
+ * will be returned from @c * close_edit, otherwise @c close_edit will return
+ * successfully (unless it encountered an error before invoking
+ * @a commit_callback).
  *
  * The callback will not be called if the commit was a no-op
  * (i.e. nothing was committed);
@@ -905,8 +905,8 @@ svn_ra_get_commit_editor3(svn_ra_session
                           const svn_delta_editor_t **editor,
                           void **edit_baton,
                           apr_hash_t *revprop_table,
-                          svn_commit_callback2_t callback,
-                          void *callback_baton,
+                          svn_commit_callback2_t commit_callback,
+                          void *commit_baton,
                           apr_hash_t *lock_tokens,
                           svn_boolean_t keep_locks,
                           apr_pool_t *pool);
@@ -926,8 +926,8 @@ svn_ra_get_commit_editor2(svn_ra_session
                           const svn_delta_editor_t **editor,
                           void **edit_baton,
                           const char *log_msg,
-                          svn_commit_callback2_t callback,
-                          void *callback_baton,
+                          svn_commit_callback2_t commit_callback,
+                          void *commit_baton,
                           apr_hash_t *lock_tokens,
                           svn_boolean_t keep_locks,
                           apr_pool_t *pool);

Modified: subversion/branches/javahl-ra/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/include/svn_repos.h?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/include/svn_repos.h (original)
+++ subversion/branches/javahl-ra/subversion/include/svn_repos.h Mon Dec 24 03:44:17 2012
@@ -1340,14 +1340,14 @@ svn_repos_replay(svn_fs_root_t *root,
  *
  * Calling @a (*editor)->close_edit completes the commit.
  *
- * If @a callback is non-NULL, then before @c close_edit returns (but
+ * If @a commit_callback is non-NULL, then before @c close_edit returns (but
  * after the commit has succeeded) @c close_edit will invoke
- * @a callback with a filled-in #svn_commit_info_t *, @a callback_baton,
- * and @a pool or some subpool thereof as arguments.  If @a callback
+ * @a commit_callback with a filled-in #svn_commit_info_t *, @a commit_baton,
+ * and @a pool or some subpool thereof as arguments.  If @a commit_callback
  * returns an error, that error will be returned from @c close_edit,
  * otherwise if there was a post-commit hook failure, then that error
  * will be returned with code SVN_ERR_REPOS_POST_COMMIT_HOOK_FAILED.
- * (Note that prior to Subversion 1.6, @a callback cannot be NULL; if
+ * (Note that prior to Subversion 1.6, @a commit_callback cannot be NULL; if
  * you don't need a callback, pass a dummy function.)
  *
  * Calling @a (*editor)->abort_edit aborts the commit, and will also
@@ -1368,8 +1368,8 @@ svn_repos_get_commit_editor5(const svn_d
                              const char *repos_url,
                              const char *base_path,
                              apr_hash_t *revprop_table,
-                             svn_commit_callback2_t callback,
-                             void *callback_baton,
+                             svn_commit_callback2_t commit_callback,
+                             void *commit_baton,
                              svn_repos_authz_callback_t authz_callback,
                              void *authz_baton,
                              apr_pool_t *pool);
@@ -1394,8 +1394,8 @@ svn_repos_get_commit_editor4(const svn_d
                              const char *base_path,
                              const char *user,
                              const char *log_msg,
-                             svn_commit_callback2_t callback,
-                             void *callback_baton,
+                             svn_commit_callback2_t commit_callback,
+                             void *commit_baton,
                              svn_repos_authz_callback_t authz_callback,
                              void *authz_baton,
                              apr_pool_t *pool);

Modified: subversion/branches/javahl-ra/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_client/copy.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_client/copy.c Mon Dec 24 03:44:17 2012
@@ -365,18 +365,21 @@ do_wc_to_wc_moves(const apr_array_header
   return svn_error_trace(err);
 }
 
-
+/* Verify that the destinations stored in COPY_PAIRS are valid working copy
+   destinations and set pair->dst_parent_abspath and pair->base_name for each
+   item to the resulting location if they do */
 static svn_error_t *
-verify_wc_srcs_and_dsts(const apr_array_header_t *copy_pairs,
-                        svn_boolean_t make_parents,
-                        svn_boolean_t is_move,
-                        svn_client_ctx_t *ctx,
-                        apr_pool_t *pool)
+verify_wc_dsts(const apr_array_header_t *copy_pairs,
+               svn_boolean_t make_parents,
+               svn_boolean_t is_move,
+               svn_client_ctx_t *ctx,
+               apr_pool_t *result_pool,
+               apr_pool_t *scratch_pool)
 {
   int i;
-  apr_pool_t *iterpool = svn_pool_create(pool);
+  apr_pool_t *iterpool = svn_pool_create(scratch_pool);
 
-  /* Check that all of our SRCs exist, and all the DSTs don't. */
+  /* Check that DST does not exist, but its parent does */
   for (i = 0; i < copy_pairs->nelts; i++)
     {
       svn_client__copy_pair_t *pair = APR_ARRAY_IDX(copy_pairs, i,
@@ -385,15 +388,6 @@ verify_wc_srcs_and_dsts(const apr_array_
 
       svn_pool_clear(iterpool);
 
-      /* Verify that SRC_PATH exists. */
-      SVN_ERR(svn_io_check_path(pair->src_abspath_or_url, &pair->src_kind,
-                                iterpool));
-      if (pair->src_kind == svn_node_none)
-        return svn_error_createf(
-          SVN_ERR_NODE_UNKNOWN_KIND, NULL,
-          _("Path '%s' does not exist"),
-          svn_dirent_local_style(pair->src_abspath_or_url, pool));
-
       /* If DST_PATH does not exist, then its basename will become a new
          file or dir added to its parent (possibly an implicit '.').
          Else, just error out. */
@@ -419,8 +413,30 @@ verify_wc_srcs_and_dsts(const apr_array_
                   svn_dirent_local_style(pair->dst_abspath_or_url, iterpool));
             }
 
-          if ((! is_not_present)
-              && is_move
+          if (! is_not_present)
+            {
+              svn_boolean_t is_deleted;
+
+              SVN_ERR(svn_wc__node_is_status_deleted(&is_deleted, ctx->wc_ctx,
+                                                     pair->dst_abspath_or_url,
+                                                     scratch_pool));
+
+              if (! is_deleted)
+                return svn_error_createf(
+                            SVN_ERR_ENTRY_EXISTS, NULL,
+                            _("Path '%s' already exists"),
+                            svn_dirent_local_style(pair->dst_abspath_or_url,
+                                                   scratch_pool));
+            }
+        }
+
+      /* Check that there is no unversioned obstruction */
+      SVN_ERR(svn_io_check_path(pair->dst_abspath_or_url, &dst_kind,
+                                iterpool));
+
+      if (dst_kind != svn_node_none)
+        {
+          if (is_move
               && copy_pairs->nelts == 1
               && strcmp(svn_dirent_dirname(pair->src_abspath_or_url, iterpool),
                         svn_dirent_dirname(pair->dst_abspath_or_url,
@@ -435,7 +451,7 @@ verify_wc_srcs_and_dsts(const apr_array_
 
               SVN_ERR(svn_path_cstring_from_utf8(&dst,
                                                  pair->dst_abspath_or_url,
-                                                 pool));
+                                                 scratch_pool));
 
               apr_err = apr_filepath_merge(&dst_apr, NULL, dst,
                                            APR_FILEPATH_TRUENAME, iterpool);
@@ -452,31 +468,22 @@ verify_wc_srcs_and_dsts(const apr_array_
                 {
                   /* Ok, we have a single case only rename. Get out of here */
                   svn_dirent_split(&pair->dst_parent_abspath, &pair->base_name,
-                                   pair->dst_abspath_or_url, pool);
+                                   pair->dst_abspath_or_url, result_pool);
 
                   svn_pool_destroy(iterpool);
                   return SVN_NO_ERROR;
                 }
             }
 
-          if (! is_not_present)
-            {
-              svn_boolean_t is_deleted;
-
-              SVN_ERR(svn_wc__node_is_status_deleted(&is_deleted, ctx->wc_ctx,
-                                                     pair->dst_abspath_or_url, pool));
-
-              if (! is_deleted)
-                return svn_error_createf(
+          return svn_error_createf(
                             SVN_ERR_ENTRY_EXISTS, NULL,
-                            _("Path '%s' already exists"),
+                            _("Path '%s' already exists as unversioned node"),
                             svn_dirent_local_style(pair->dst_abspath_or_url,
-                                                   pool));
-            }
+                                                   scratch_pool));
         }
 
       svn_dirent_split(&pair->dst_parent_abspath, &pair->base_name,
-                       pair->dst_abspath_or_url, pool);
+                       pair->dst_abspath_or_url, result_pool);
 
       /* Make sure the destination parent is a directory and produce a clear
          error message if it is not. */
@@ -502,7 +509,7 @@ verify_wc_srcs_and_dsts(const apr_array_
           return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
                                    _("Path '%s' is not a directory"),
                                    svn_dirent_local_style(
-                                     pair->dst_parent_abspath, pool));
+                                     pair->dst_parent_abspath, scratch_pool));
         }
     }
 
@@ -511,6 +518,43 @@ verify_wc_srcs_and_dsts(const apr_array_
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+verify_wc_srcs_and_dsts(const apr_array_header_t *copy_pairs,
+                        svn_boolean_t make_parents,
+                        svn_boolean_t is_move,
+                        svn_client_ctx_t *ctx,
+                        apr_pool_t *result_pool,
+                        apr_pool_t *scratch_pool)
+{
+  int i;
+  apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+
+  /* Check that all of our SRCs exist. */
+  for (i = 0; i < copy_pairs->nelts; i++)
+    {
+      svn_client__copy_pair_t *pair = APR_ARRAY_IDX(copy_pairs, i,
+                                                    svn_client__copy_pair_t *);
+      svn_pool_clear(iterpool);
+
+      /* Verify that SRC_PATH exists. */
+      SVN_ERR(svn_wc_read_kind(&pair->src_kind, ctx->wc_ctx,
+                               pair->src_abspath_or_url, FALSE, iterpool));
+      if (pair->src_kind == svn_node_none)
+        return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL,
+                                 _("Path '%s' does not exist"),
+                                 svn_dirent_local_style(
+                                        pair->src_abspath_or_url,
+                                        scratch_pool));
+    }
+
+  SVN_ERR(verify_wc_dsts(copy_pairs, make_parents, is_move, ctx,
+                         result_pool, iterpool));
+
+  svn_pool_destroy(iterpool);
+
+  return SVN_NO_ERROR;
+}
+
 
 /* Path-specific state used as part of path_driver_cb_baton. */
 typedef struct path_driver_info_t
@@ -1638,74 +1682,24 @@ repos_to_wc_copy_locked(const apr_array_
                         apr_pool_t *scratch_pool)
 {
   int i;
-  const char *src_uuid = NULL, *dst_uuid = NULL;
   svn_boolean_t same_repositories;
   apr_pool_t *iterpool = svn_pool_create(scratch_pool);
 
   /* We've already checked for physical obstruction by a working file.
      But there could also be logical obstruction by an entry whose
      working file happens to be missing.*/
-  for (i = 0; i < copy_pairs->nelts; i++)
-    {
-      svn_client__copy_pair_t *pair = APR_ARRAY_IDX(copy_pairs, i,
-                                                    svn_client__copy_pair_t *);
-      svn_node_kind_t kind;
-      svn_boolean_t is_not_present;
-      svn_boolean_t is_excluded;
-      svn_boolean_t is_server_excluded;
-      svn_boolean_t is_deleted;
-
-      svn_pool_clear(iterpool);
-
-      SVN_ERR(svn_wc_read_kind(&kind, ctx->wc_ctx, pair->dst_abspath_or_url,
-                               TRUE /* show_hidden */, iterpool));
-      if (kind == svn_node_none)
-        continue;
-
-      /* ### TODO(#2843): Rework these error report. Maybe we can
-         ### simplify the conditions? */
-
-      /* Hidden by client exclusion */
-      SVN_ERR(svn_wc__node_is_not_present(&is_not_present, &is_excluded,
-                                          &is_server_excluded, ctx->wc_ctx,
-                                          pair->dst_abspath_or_url,
-                                          iterpool));
-
-      if (is_not_present)
-        continue;
-
-      if (is_excluded || is_server_excluded)
-        {
-          return svn_error_createf(
-             SVN_ERR_WC_OBSTRUCTED_UPDATE,
-             NULL, _("Path '%s' exists, but is excluded"),
-             svn_dirent_local_style(pair->dst_abspath_or_url, iterpool));
-        }
-
-      /* Working file missing to something other than being scheduled
-         for addition or in "deleted" state. */
-
-      SVN_ERR(svn_wc__node_is_status_deleted(&is_deleted, ctx->wc_ctx,
-                                             pair->dst_abspath_or_url,
-                                             iterpool));
-
-      if (! is_deleted)
-        {
-          return svn_error_createf(
-               SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
-               _("Path '%s' exists, but the working file is missing"),
-               svn_dirent_local_style(pair->dst_abspath_or_url, iterpool));
-        }
-    }
+  SVN_ERR(verify_wc_dsts(copy_pairs, FALSE, FALSE, ctx,
+                         scratch_pool, iterpool));
 
   /* Decide whether the two repositories are the same or not. */
   {
     svn_error_t *src_err, *dst_err;
     const char *parent;
     const char *parent_abspath;
+    const char *src_uuid, *dst_uuid;
 
     /* Get the repository uuid of SRC_URL */
-    src_err = svn_ra_get_uuid2(ra_session, &src_uuid, scratch_pool);
+    src_err = svn_ra_get_uuid2(ra_session, &src_uuid, iterpool);
     if (src_err && src_err->apr_err != SVN_ERR_RA_NO_REPOS_UUID)
       return svn_error_trace(src_err);
 
@@ -1720,7 +1714,7 @@ repos_to_wc_copy_locked(const apr_array_
     SVN_ERR(svn_dirent_get_absolute(&parent_abspath, parent, scratch_pool));
     dst_err = svn_client_get_repos_root(NULL /* root_url */, &dst_uuid,
                                         parent_abspath, ctx,
-                                        scratch_pool, scratch_pool);
+                                        iterpool, iterpool);
     if (dst_err && dst_err->apr_err != SVN_ERR_RA_NO_REPOS_UUID)
       return dst_err;
 
@@ -1730,7 +1724,6 @@ repos_to_wc_copy_locked(const apr_array_
        copy-history is attempted. */
     if (src_err || dst_err || (! src_uuid) || (! dst_uuid))
       same_repositories = FALSE;
-
     else
       same_repositories = (strcmp(src_uuid, dst_uuid) == 0);
   }
@@ -2167,7 +2160,7 @@ try_copy(const apr_array_header_t *sourc
   if ((! srcs_are_urls) && (! dst_is_url))
     {
       SVN_ERR(verify_wc_srcs_and_dsts(copy_pairs, make_parents, is_move,
-                                      ctx, pool));
+                                      ctx, pool, pool));
 
       /* Copy or move all targets. */
       if (is_move)

Modified: subversion/branches/javahl-ra/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_client/merge.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_client/merge.c Mon Dec 24 03:44:17 2012
@@ -2725,7 +2725,7 @@ merge_dir_closed(svn_wc_notify_state_t *
   merge_cmd_baton_t *merge_b = baton;
 
   if (merge_b->dry_run)
-    svn_hash__clear(merge_b->dry_run_deletions, scratch_pool);
+    SVN_ERR(svn_hash__clear(merge_b->dry_run_deletions, scratch_pool));
 
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/javahl-ra/subversion/libsvn_diff/parse-diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_diff/parse-diff.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_diff/parse-diff.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_diff/parse-diff.c Mon Dec 24 03:44:17 2012
@@ -595,7 +595,6 @@ parse_next_hunk(svn_diff_hunk_t **hunk,
                     original_end = hunk_text_end;
                   if (modified_end == 0)
                     modified_end = hunk_text_end;
-                  break;
                 }
 
               SVN_ERR(svn_io_file_seek(apr_file, APR_SET, &pos, iterpool));

Modified: subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs_fs.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs_fs.c Mon Dec 24 03:44:17 2012
@@ -98,7 +98,7 @@
 /* Give writing processes 10 seconds to replace an existing revprop
    file with a new one. After that time, we assume that the writing
    process got aborted and that we have re-read revprops. */
-#define REVPROP_CHANGE_TIMEOUT 10 * 1000000
+#define REVPROP_CHANGE_TIMEOUT (10 * 1000000)
 
 /* The following are names of atomics that will be used to communicate
  * revprop updates across all processes on this machine. */

Modified: subversion/branches/javahl-ra/subversion/libsvn_ra/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_ra/deprecated.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_ra/deprecated.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_ra/deprecated.c Mon Dec 24 03:44:17 2012
@@ -209,8 +209,8 @@ svn_error_t *svn_ra_get_commit_editor2(s
                                        const svn_delta_editor_t **editor,
                                        void **edit_baton,
                                        const char *log_msg,
-                                       svn_commit_callback2_t callback,
-                                       void *callback_baton,
+                                       svn_commit_callback2_t commit_callback,
+                                       void *commit_baton,
                                        apr_hash_t *lock_tokens,
                                        svn_boolean_t keep_locks,
                                        apr_pool_t *pool)
@@ -221,7 +221,7 @@ svn_error_t *svn_ra_get_commit_editor2(s
                  APR_HASH_KEY_STRING,
                  svn_string_create(log_msg, pool));
   return svn_ra_get_commit_editor3(session, editor, edit_baton, revprop_table,
-                                   callback, callback_baton,
+                                   commit_callback, commit_baton,
                                    lock_tokens, keep_locks, pool);
 }
 

Modified: subversion/branches/javahl-ra/subversion/libsvn_ra/editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_ra/editor.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_ra/editor.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_ra/editor.c Mon Dec 24 03:44:17 2012
@@ -77,8 +77,8 @@ svn_error_t *
 svn_ra__use_commit_shim(svn_editor_t **editor,
                         svn_ra_session_t *session,
                         apr_hash_t *revprop_table,
-                        svn_commit_callback2_t callback,
-                        void *callback_baton,
+                        svn_commit_callback2_t commit_callback,
+                        void *commit_baton,
                         apr_hash_t *lock_tokens,
                         svn_boolean_t keep_locks,
                         svn_ra__provide_base_cb_t provide_base_cb,
@@ -108,7 +108,7 @@ svn_ra__use_commit_shim(svn_editor_t **e
   /* Fetch the RA provider's Ev1 commit editor.  */
   SVN_ERR(session->vtable->get_commit_editor(session, &deditor, &dedit_baton,
                                              revprop_table,
-                                             callback, callback_baton,
+                                             commit_callback, commit_baton,
                                              lock_tokens, keep_locks,
                                              result_pool));
 

Modified: subversion/branches/javahl-ra/subversion/libsvn_ra/ra_loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_ra/ra_loader.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_ra/ra_loader.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_ra/ra_loader.c Mon Dec 24 03:44:17 2012
@@ -706,19 +706,19 @@ svn_error_t *svn_ra_get_commit_editor3(s
                                        const svn_delta_editor_t **editor,
                                        void **edit_baton,
                                        apr_hash_t *revprop_table,
-                                       svn_commit_callback2_t callback,
-                                       void *callback_baton,
+                                       svn_commit_callback2_t commit_callback,
+                                       void *commit_baton,
                                        apr_hash_t *lock_tokens,
                                        svn_boolean_t keep_locks,
                                        apr_pool_t *pool)
 {
-  remap_commit_callback(&callback, &callback_baton,
-                        session, callback, callback_baton,
+  remap_commit_callback(&commit_callback, &commit_baton,
+                        session, commit_callback, commit_baton,
                         pool);
 
   return session->vtable->get_commit_editor(session, editor, edit_baton,
                                             revprop_table,
-                                            callback, callback_baton,
+                                            commit_callback, commit_baton,
                                             lock_tokens, keep_locks, pool);
 }
 
@@ -1280,8 +1280,8 @@ svn_error_t *
 svn_ra__get_commit_ev2(svn_editor_t **editor,
                        svn_ra_session_t *session,
                        apr_hash_t *revprop_table,
-                       svn_commit_callback2_t callback,
-                       void *callback_baton,
+                       svn_commit_callback2_t commit_callback,
+                       void *commit_baton,
                        apr_hash_t *lock_tokens,
                        svn_boolean_t keep_locks,
                        svn_ra__provide_base_cb_t provide_base_cb,
@@ -1299,15 +1299,15 @@ svn_ra__get_commit_ev2(svn_editor_t **ed
          default shim over the normal commit editor.  */
 
       /* Remap for RA layers exposing Ev1.  */
-      remap_commit_callback(&callback, &callback_baton,
-                            session, callback, callback_baton,
+      remap_commit_callback(&commit_callback, &commit_baton,
+                            session, commit_callback, commit_baton,
                             result_pool);
 
       return svn_error_trace(svn_ra__use_commit_shim(
                                editor,
                                session,
                                revprop_table,
-                               callback, callback_baton,
+                               commit_callback, commit_baton,
                                lock_tokens,
                                keep_locks,
                                provide_base_cb,
@@ -1325,7 +1325,7 @@ svn_ra__get_commit_ev2(svn_editor_t **ed
                            editor,
                            session,
                            revprop_table,
-                           callback, callback_baton,
+                           commit_callback, commit_baton,
                            lock_tokens,
                            keep_locks,
                            provide_base_cb,

Modified: subversion/branches/javahl-ra/subversion/libsvn_repos/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_repos/commit.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_repos/commit.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_repos/commit.c Mon Dec 24 03:44:17 2012
@@ -921,8 +921,8 @@ svn_repos_get_commit_editor5(const svn_d
                              const char *repos_url,
                              const char *base_path,
                              apr_hash_t *revprop_table,
-                             svn_commit_callback2_t callback,
-                             void *callback_baton,
+                             svn_commit_callback2_t commit_callback,
+                             void *commit_baton,
                              svn_repos_authz_callback_t authz_callback,
                              void *authz_baton,
                              apr_pool_t *pool)
@@ -967,8 +967,8 @@ svn_repos_get_commit_editor5(const svn_d
   /* Set up the edit baton. */
   eb->pool = subpool;
   eb->revprop_table = svn_prop_hash_dup(revprop_table, subpool);
-  eb->commit_callback = callback;
-  eb->commit_callback_baton = callback_baton;
+  eb->commit_callback = commit_callback;
+  eb->commit_callback_baton = commit_baton;
   eb->authz_callback = authz_callback;
   eb->authz_baton = authz_baton;
   eb->base_path = svn_fspath__canonicalize(base_path, subpool);

Modified: subversion/branches/javahl-ra/subversion/libsvn_repos/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_repos/deprecated.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_repos/deprecated.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_repos/deprecated.c Mon Dec 24 03:44:17 2012
@@ -48,8 +48,8 @@ svn_repos_get_commit_editor4(const svn_d
                              const char *base_path,
                              const char *user,
                              const char *log_msg,
-                             svn_commit_callback2_t callback,
-                             void *callback_baton,
+                             svn_commit_callback2_t commit_callback,
+                             void *commit_baton,
                              svn_repos_authz_callback_t authz_callback,
                              void *authz_baton,
                              apr_pool_t *pool)
@@ -65,7 +65,7 @@ svn_repos_get_commit_editor4(const svn_d
                  svn_string_create(log_msg, pool));
   return svn_repos_get_commit_editor5(editor, edit_baton, repos, txn,
                                       repos_url, base_path, revprop_table,
-                                      callback, callback_baton,
+                                      commit_callback, commit_baton,
                                       authz_callback, authz_baton, pool);
 }
 

Modified: subversion/branches/javahl-ra/subversion/libsvn_subr/gpg_agent.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_subr/gpg_agent.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_subr/gpg_agent.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_subr/gpg_agent.c Mon Dec 24 03:44:17 2012
@@ -335,8 +335,8 @@ password_get_gpg_agent(svn_boolean_t *do
 
   /* Create the CACHE_ID which will be generated based on REALMSTRING similar
      to other password caching mechanisms. */
-  svn_checksum(&digest, svn_checksum_md5, realmstring, strlen(realmstring),
-               pool);
+  SVN_ERR(svn_checksum(&digest, svn_checksum_md5, realmstring,
+                       strlen(realmstring), pool));
   cache_id = svn_checksum_to_cstring(digest, pool);
 
   password_prompt = apr_psprintf(pool, _("Password for '%s': "), username);

Modified: subversion/branches/javahl-ra/subversion/libsvn_subr/named_atomic.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_subr/named_atomic.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_subr/named_atomic.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_subr/named_atomic.c Mon Dec 24 03:44:17 2012
@@ -396,10 +396,8 @@ svn_atomic_namespace__create(svn_atomic_
 
   /* initialize the lock objects
    */
-  svn_atomic__init_once(&mutex_initialized,
-                        init_thread_mutex,
-                        NULL,
-                        result_pool);
+  SVN_ERR(svn_atomic__init_once(&mutex_initialized, init_thread_mutex, NULL,
+                                result_pool));
 
   new_ns->mutex.pool = result_pool;
   SVN_ERR(svn_io_file_open(&new_ns->mutex.lock_file, lock_name,

Modified: subversion/branches/javahl-ra/subversion/libsvn_subr/sysinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_subr/sysinfo.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_subr/sysinfo.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_subr/sysinfo.c Mon Dec 24 03:44:17 2012
@@ -363,7 +363,8 @@ lsb_release(apr_pool_t *pool)
           else if (0 == svn_cstring_casecmp(key, "Codename"))
             codename = line->data;
         }
-      svn_stream_close(lsbinfo);
+      err = svn_error_compose_create(err,
+                                     svn_stream_close(lsbinfo));
       if (err)
         {
           svn_error_clear(err);

Modified: subversion/branches/javahl-ra/subversion/libsvn_subr/utf.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_subr/utf.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_subr/utf.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_subr/utf.c Mon Dec 24 03:44:17 2012
@@ -892,7 +892,7 @@ svn_utf_stringbuf_from_utf8(svn_stringbu
         *dest = svn_stringbuf_dup(src, pool);
     }
 
-  put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool);
+  SVN_ERR(put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool));
 
   return err;
 }
@@ -925,7 +925,7 @@ svn_utf_string_from_utf8(const svn_strin
         *dest = svn_string_dup(src, pool);
     }
 
-  put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool);
+  SVN_ERR(put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool));
 
   return err;
 }
@@ -943,7 +943,7 @@ svn_utf_cstring_from_utf8(const char **d
 
   SVN_ERR(get_uton_xlate_handle_node(&node, pool));
   err = convert_cstring(dest, src, node, pool);
-  put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool);
+  SVN_ERR(put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool));
 
   return err;
 }
@@ -965,7 +965,7 @@ svn_utf_cstring_from_utf8_ex2(const char
   SVN_ERR(get_xlate_handle_node(&node, topage, SVN_APR_UTF8_CHARSET,
                                 convset_key, pool));
   err = convert_cstring(dest, src, node, pool);
-  put_xlate_handle_node(node, convset_key, pool);
+  SVN_ERR(put_xlate_handle_node(node, convset_key, pool));
 
   return err;
 }
@@ -1062,7 +1062,7 @@ svn_utf_cstring_from_utf8_string(const c
         *dest = apr_pstrmemdup(pool, src->data, src->len);
     }
 
-  put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool);
+  SVN_ERR(put_xlate_handle_node(node, SVN_UTF_UTON_XLATE_HANDLE, pool));
 
   return err;
 }

Modified: subversion/branches/javahl-ra/subversion/libsvn_wc/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_wc/conflicts.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_wc/conflicts.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_wc/conflicts.c Mon Dec 24 03:44:17 2012
@@ -1162,7 +1162,7 @@ svn_wc__conflict_create_markers(svn_skel
           {
             const char *propname = svn__apr_hash_index_key(hi);
 
-            prop_conflict_skel_add(
+            SVN_ERR(prop_conflict_skel_add(
                             prop_data, propname,
                             old_props
                                     ? apr_hash_get(old_props, propname,
@@ -1180,7 +1180,7 @@ svn_wc__conflict_create_markers(svn_skel
                                     ? apr_hash_get(their_original_props, propname,
                                                    APR_HASH_KEY_STRING)
                                       : NULL,
-                            result_pool, scratch_pool);
+                            result_pool, scratch_pool));
           }
 
         SVN_ERR(svn_wc__wq_build_prej_install(work_items,

Modified: subversion/branches/javahl-ra/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_wc/update_editor.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_wc/update_editor.c Mon Dec 24 03:44:17 2012
@@ -1629,7 +1629,7 @@ delete_entry(const char *path,
     if (is_root)
       {
         /* Just skip this node; a future update will handle it */
-        remember_skipped_tree(eb, local_abspath, pool);
+        SVN_ERR(remember_skipped_tree(eb, local_abspath, pool));
         do_notification(eb, local_abspath, svn_node_unknown,
                         svn_wc_notify_update_skip_obstruction, scratch_pool);
 
@@ -1918,7 +1918,7 @@ add_directory(const char *path,
                                                    NULL, NULL,
                                                    pool));
 
-      remember_skipped_tree(eb, db->local_abspath, pool);
+      SVN_ERR(remember_skipped_tree(eb, db->local_abspath, pool));
       db->skip_this = TRUE;
       db->already_notified = TRUE;
 
@@ -1942,7 +1942,7 @@ add_directory(const char *path,
          file externals.
       */
 
-      remember_skipped_tree(eb, db->local_abspath, pool);
+      SVN_ERR(remember_skipped_tree(eb, db->local_abspath, pool));
       db->skip_this = TRUE;
       db->already_notified = TRUE;
 
@@ -2200,7 +2200,7 @@ open_directory(const char *path,
     if (is_root)
       {
         /* Just skip this node; a future update will handle it */
-        remember_skipped_tree(eb, db->local_abspath, pool);
+        SVN_ERR(remember_skipped_tree(eb, db->local_abspath, pool));
         db->skip_this = TRUE;
         db->already_notified = TRUE;
 
@@ -2993,7 +2993,7 @@ add_file(const char *path,
       apr_hash_set(pb->not_present_files, apr_pstrdup(pb->pool, fb->name),
                    APR_HASH_KEY_STRING, (void*)1);
 
-      remember_skipped_tree(eb, fb->local_abspath, pool);
+      SVN_ERR(remember_skipped_tree(eb, fb->local_abspath, pool));
       fb->skip_this = TRUE;
       fb->already_notified = TRUE;
 
@@ -3018,7 +3018,7 @@ add_file(const char *path,
          The reason we get here is that the adm crawler doesn't report
          file externals.
       */
-      remember_skipped_tree(eb, fb->local_abspath, pool);
+      SVN_ERR(remember_skipped_tree(eb, fb->local_abspath, pool));
       fb->skip_this = TRUE;
       fb->already_notified = TRUE;
 
@@ -3263,7 +3263,7 @@ open_file(const char *path,
     if (is_root)
       {
         /* Just skip this node; a future update will handle it */
-        remember_skipped_tree(eb, fb->local_abspath, pool);
+        SVN_ERR(remember_skipped_tree(eb, fb->local_abspath, pool));
         fb->skip_this = TRUE;
         fb->already_notified = TRUE;
 

Modified: subversion/branches/javahl-ra/subversion/libsvn_wc/wc-queries.sql
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_wc/wc-queries.sql?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_wc/wc-queries.sql Mon Dec 24 03:44:17 2012
@@ -1040,7 +1040,7 @@ FROM nodes_current n
 WHERE (wc_id = ?1 AND local_relpath = ?2)
    OR (wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2))
 
--- STMT_PRAGA_LOCKING_MODE
+-- STMT_PRAGMA_LOCKING_MODE
 PRAGMA locking_mode = exclusive
 
 /* ------------------------------------------------------------------------- */

Modified: subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h Mon Dec 24 03:44:17 2012
@@ -1929,7 +1929,7 @@ struct svn_wc__db_info_t {
   svn_boolean_t incomplete; /* TRUE if a working node is incomplete */
 
   const char *moved_to_abspath; /* Only on op-roots. See svn_wc_status3_t. */
-  svn_boolean_t moved_here;     /* On both op-roots and children. */
+  svn_boolean_t moved_here;     /* Only on op-roots. */
 
   svn_boolean_t file_external;
 };

Modified: subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db_util.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db_util.c (original)
+++ subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db_util.c Mon Dec 24 03:44:17 2012
@@ -142,7 +142,7 @@ svn_wc__db_util_open_db(svn_sqlite__db_t
                            0, NULL, result_pool, scratch_pool));
 
   if (exclusive)
-    SVN_ERR(svn_sqlite__exec_statements(*sdb, STMT_PRAGA_LOCKING_MODE));
+    SVN_ERR(svn_sqlite__exec_statements(*sdb, STMT_PRAGMA_LOCKING_MODE));
 
   SVN_ERR(svn_sqlite__create_scalar_function(*sdb, "relpath_depth", 1,
                                              relpath_depth, NULL));

Modified: subversion/branches/javahl-ra/subversion/mod_dav_svn/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/mod_dav_svn/repos.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/mod_dav_svn/repos.c (original)
+++ subversion/branches/javahl-ra/subversion/mod_dav_svn/repos.c Mon Dec 24 03:44:17 2012
@@ -2231,8 +2231,12 @@ get_resource(request_rec *r,
         }
 
       /* Configure hook script environment variables. */
-      svn_repos_hooks_setenv(repos->repos, dav_svn__get_hooks_env(r),
-                             r->connection->pool, r->pool);
+      serr = svn_repos_hooks_setenv(repos->repos, dav_svn__get_hooks_env(r),
+                                    r->connection->pool, r->pool);
+      if (serr)
+        return dav_svn__sanitize_error(serr,
+                                       "Error settings hooks environment",
+                                       HTTP_INTERNAL_SERVER_ERROR, r);
     }
 
   /* cache the filesystem object */
@@ -3179,7 +3183,7 @@ typedef struct diff_ctx_t {
 } diff_ctx_t;
 
 
-static svn_error_t *
+static svn_error_t *  __attribute__((warn_unused_result))
 write_to_filter(void *baton, const char *buffer, apr_size_t *len)
 {
   diff_ctx_t *dc = baton;
@@ -3200,7 +3204,7 @@ write_to_filter(void *baton, const char 
 }
 
 
-static svn_error_t *
+static svn_error_t *  __attribute__((warn_unused_result))
 close_filter(void *baton)
 {
   diff_ctx_t *dc = baton;

Modified: subversion/branches/javahl-ra/subversion/svn/conflict-callbacks.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/svn/conflict-callbacks.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/svn/conflict-callbacks.c (original)
+++ subversion/branches/javahl-ra/subversion/svn/conflict-callbacks.c Mon Dec 24 03:44:17 2012
@@ -477,7 +477,7 @@ handle_text_conflict(svn_wc_conflict_res
           if (performed_edit)
             knows_something = TRUE;
         }
-      else if (strcmp(answer, "m") == 0 || strcmp(answer, ":-g") ||
+      else if (strcmp(answer, "m") == 0 || strcmp(answer, ":-g") == 0 ||
                strcmp(answer, "=>-") == 0 || strcmp(answer, ":>.") == 0)
         {
           if (desc->kind != svn_wc_conflict_kind_text)

Modified: subversion/branches/javahl-ra/subversion/svn/proplist-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/svn/proplist-cmd.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/svn/proplist-cmd.c (original)
+++ subversion/branches/javahl-ra/subversion/svn/proplist-cmd.c Mon Dec 24 03:44:17 2012
@@ -86,7 +86,7 @@ proplist_receiver_xml(void *baton,
                                               (! opt_state->verbose),
                                               TRUE, iterpool));
           svn_xml_make_close_tag(&sb, iterpool, "target");
-          svn_cl__error_checked_fputs(sb->data, stdout);
+          SVN_ERR(svn_cl__error_checked_fputs(sb->data, stdout));
         }
       svn_pool_destroy(iterpool);
     }

Modified: subversion/branches/javahl-ra/subversion/svnserve/serve.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/svnserve/serve.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/svnserve/serve.c (original)
+++ subversion/branches/javahl-ra/subversion/svnserve/serve.c Mon Dec 24 03:44:17 2012
@@ -3144,8 +3144,8 @@ static svn_error_t *find_repos(const cha
 
 #ifdef SVN_HAVE_SASL
   /* Should we use Cyrus SASL? */
-  svn_config_get_bool(b->cfg, &b->use_sasl, SVN_CONFIG_SECTION_SASL,
-                      SVN_CONFIG_OPTION_USE_SASL, FALSE);
+  SVN_ERR(svn_config_get_bool(b->cfg, &b->use_sasl, SVN_CONFIG_SECTION_SASL,
+                              SVN_CONFIG_OPTION_USE_SASL, FALSE));
 #endif
 
   /* Use the repository UUID as the default realm. */
@@ -3169,7 +3169,7 @@ static svn_error_t *find_repos(const cha
                  SVN_CONFIG_OPTION_HOOKS_ENV, NULL);
   if (hooks_env)
     hooks_env = svn_dirent_internal_style(hooks_env, pool);
-  svn_repos_hooks_setenv(b->repos, hooks_env, pool, pool);
+  SVN_ERR(svn_repos_hooks_setenv(b->repos, hooks_env, pool, pool));
 
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/copy_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/copy_tests.py?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/copy_tests.py Mon Dec 24 03:44:17 2012
@@ -1878,12 +1878,14 @@ def mv_unversioned_file(sbox):
 
   # Try to move an unversioned file.
   svntest.actions.run_and_verify_svn(None, None,
-                                     ".*unversioned1.* is not under version control.*",
+                                     ".*unversioned1' " +
+                                       "(does not exist|is not under version control)",
                                      'mv', unver_path_1, dest_path_1)
 
   # Try to forcibly move an unversioned file.
   svntest.actions.run_and_verify_svn(None, None,
-                                     ".*unversioned2.* is not under version control.*",
+                                     ".*unversioned2.* " +
+                                       "(does not exist|is not under version control)",
                                      'mv',
                                      unver_path_2, dest_path_2)
 
@@ -5457,11 +5459,13 @@ def copy_deleted_dir(sbox):
   sbox.simple_rm('A')
 
   svntest.actions.run_and_verify_svn(None, None,
-                                     'svn: E145000: Path.* does not exist',
+                                     '(svn: E145000: Path.* does not exist)|' +
+                                      "(svn: E155035: Deleted node .* copied)",
                                      'cp', sbox.ospath('iota'),
                                      sbox.ospath('new_iota'))
   svntest.actions.run_and_verify_svn(None, None,
-                                     'svn: E145000: Path.* does not exist',
+                                     '(svn: E145000: Path.* does not exist)|' +
+                                      "(svn: E155035: Deleted node .* copied)",
                                      'cp', sbox.ospath('A/D'),
                                      sbox.ospath('new_D'))
 

Modified: subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py (original)
+++ subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py Mon Dec 24 03:44:17 2012
@@ -3997,24 +3997,57 @@ def patch_target_no_eol_at_eof(sbox):
 
   patch_file_path = make_patch_path(sbox)
   iota_path = sbox.ospath('iota')
+  mu_path = sbox.ospath('A/mu')
 
   iota_contents = [
     "This is the file iota."
   ]
 
+  mu_contents = [
+    "context\n",
+    "context\n",
+    "context\n",
+    "context\n",
+    "This is the file mu.\n",
+    "context\n",
+    "context\n",
+    "context\n",
+    "context", # no newline at end of file
+  ]
+
   svntest.main.file_write(iota_path, ''.join(iota_contents))
+  svntest.main.file_write(mu_path, ''.join(mu_contents))
   expected_output = svntest.wc.State(wc_dir, {
     'iota'  : Item(verb='Sending'),
+    'A/mu'  : Item(verb='Sending'),
     })
   expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
   expected_status.tweak('iota', wc_rev=2)
+  expected_status.tweak('A/mu', wc_rev=2)
   svntest.actions.run_and_verify_commit(wc_dir, expected_output,
                                         expected_status, None, wc_dir)
   unidiff_patch = [
-    "--- iota\t(revision 1)\n",
+    "Index: A/mu\n",
+    "===================================================================\n",
+    "--- A/mu\t(revision 2)\n",
+    "+++ A/mu\t(working copy)\n",
+    "@@ -2,8 +2,8 @@ context\n",
+    " context\n",
+    " context\n",
+    " context\n",
+    "-This is the file mu.\n",
+    "+It is really the file mu.\n",
+    " context\n",
+    " context\n",
+    " context\n",
+    " context\n",
+    "\\ No newline at end of file\n",
+    "Index: iota\n",
+    "===================================================================\n",
+    "--- iota\t(revision 2)\n",
     "+++ iota\t(working copy)\n",
-    "@@ -1,7 +1,7 @@\n",
-    "-This is the file iota.\n"
+    "@@ -1 +1 @@\n",
+    "-This is the file iota.\n",
     "\\ No newline at end of file\n",
     "+It is really the file 'iota'.\n",
     "\\ No newline at end of file\n",
@@ -4025,15 +4058,29 @@ def patch_target_no_eol_at_eof(sbox):
   iota_contents = [
     "It is really the file 'iota'."
   ]
+  mu_contents = [
+    "context\n",
+    "context\n",
+    "context\n",
+    "context\n",
+    "It is really the file mu.\n",
+    "context\n",
+    "context\n",
+    "context\n",
+    "context", # no newline at end of file
+  ]
   expected_output = [
+    'U         %s\n' % sbox.ospath('A/mu'),
     'U         %s\n' % sbox.ospath('iota'),
   ]
 
   expected_disk = svntest.main.greek_state.copy()
   expected_disk.tweak('iota', contents=''.join(iota_contents))
+  expected_disk.tweak('A/mu', contents=''.join(mu_contents))
 
   expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
   expected_status.tweak('iota', status='M ', wc_rev=2)
+  expected_status.tweak('A/mu', status='M ', wc_rev=2)
 
   expected_skip = wc.State('', { })
 

Modified: subversion/branches/javahl-ra/subversion/tests/libsvn_subr/auth-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/libsvn_subr/auth-test.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/libsvn_subr/auth-test.c (original)
+++ subversion/branches/javahl-ra/subversion/tests/libsvn_subr/auth-test.c Mon Dec 24 03:44:17 2012
@@ -143,8 +143,8 @@ test_platform_specific_auth_providers(ap
 
   /* Test GNOME Keyring auth providers */
 #ifdef SVN_HAVE_GNOME_KEYRING
-  svn_auth_get_platform_specific_provider(&provider, "gnome_keyring",
-                                          "simple", pool);
+  SVN_ERR(svn_auth_get_platform_specific_provider(&provider, "gnome_keyring",
+                                                  "simple", pool));
 
   if (!provider)
     return svn_error_createf
@@ -152,8 +152,8 @@ test_platform_specific_auth_providers(ap
        "svn_auth_get_platform_specific_provider('gnome_keyring', 'simple') "
        "should not return NULL");
 
-  svn_auth_get_platform_specific_provider(&provider, "gnome_keyring",
-                                          "ssl_client_cert_pw", pool);
+  SVN_ERR(svn_auth_get_platform_specific_provider(&provider, "gnome_keyring",
+                                                  "ssl_client_cert_pw", pool));
 
   if (!provider)
     return svn_error_createf
@@ -162,8 +162,8 @@ test_platform_specific_auth_providers(ap
        "'ssl_client_cert_pw') should not return NULL");
 
   /* Make sure you do not get a Windows auth provider */
-  svn_auth_get_platform_specific_provider(&provider, "windows",
-                                          "simple", pool);
+  SVN_ERR(svn_auth_get_platform_specific_provider(&provider, "windows",
+                                                  "simple", pool));
 
   if (provider)
     return svn_error_createf

Modified: subversion/branches/javahl-ra/subversion/tests/libsvn_wc/conflict-data-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/tests/libsvn_wc/conflict-data-test.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/tests/libsvn_wc/conflict-data-test.c (original)
+++ subversion/branches/javahl-ra/subversion/tests/libsvn_wc/conflict-data-test.c Mon Dec 24 03:44:17 2012
@@ -86,8 +86,10 @@ compare_conflict(const svn_wc_conflict_d
   SVN_TEST_STRING_ASSERT(expected->my_abspath, actual->my_abspath);
   SVN_TEST_STRING_ASSERT(expected->merged_file, actual->merged_file);
   SVN_TEST_ASSERT(expected->operation == actual->operation);
-  compare_version(expected->src_left_version, actual->src_left_version);
-  compare_version(expected->src_right_version, actual->src_right_version);
+  SVN_ERR(compare_version(expected->src_left_version,
+                          actual->src_left_version));
+  SVN_ERR(compare_version(expected->src_right_version,
+                          actual->src_right_version));
   return SVN_NO_ERROR;
 }
 

Modified: subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c?rev=1425583&r1=1425582&r2=1425583&view=diff
==============================================================================
--- subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c (original)
+++ subversion/branches/javahl-ra/tools/server-side/fsfs-reorg.c Mon Dec 24 03:44:17 2012
@@ -2003,9 +2003,11 @@ write_revisions(fs_fs_t *fs,
 
       for (i = 0; i < pack->info->nelts; ++i)
         {
-          revision_info_t *info = APR_ARRAY_IDX(pack->info, i, revision_info_t*);
-          svn_stream_printf(stream, itempool, "%" APR_UINT64_T_FMT "\n",
-                            info->target.offset);
+          revision_info_t *info = APR_ARRAY_IDX(pack->info, i,
+                                                revision_info_t *);
+          SVN_ERR(svn_stream_printf(stream, itempool,
+                                    "%" APR_UINT64_T_FMT "\n",
+                                    info->target.offset));
           svn_pool_clear(itempool);
         }
     }