Return-Path: X-Original-To: apmail-subversion-commits-archive@minotaur.apache.org Delivered-To: apmail-subversion-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4B5F7D2B5 for ; Mon, 24 Dec 2012 03:45:20 +0000 (UTC) Received: (qmail 3467 invoked by uid 500); 24 Dec 2012 03:45:20 -0000 Delivered-To: apmail-subversion-commits-archive@subversion.apache.org Received: (qmail 3440 invoked by uid 500); 24 Dec 2012 03:45:19 -0000 Mailing-List: contact commits-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@subversion.apache.org Delivered-To: mailing list commits@subversion.apache.org Received: (qmail 2880 invoked by uid 99); 24 Dec 2012 03:44:52 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Dec 2012 03:44:52 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Dec 2012 03:44:44 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 2D8DA2388993; Mon, 24 Dec 2012 03:44:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Mon, 24 Dec 2012 03:44:19 -0000 To: commits@subversion.apache.org From: vmpn@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121224034421.2D8DA2388993@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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"^---(?PSTATEMENT|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 const char *), commit author (as a - * const char *), 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); } }