subversion

Checkout Tools
  • last updated 3 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1053469 is being indexed.

Stop using svn_error__locate in the public ABI.

We can't delete it from the ABI, but we can at least do this much.

* subversion/include/svn_error.h

(svn_error__locate): Move this prototype, and the four macros that

call it, into an #ifdef SVN_DEBUG section. No public API change.

* subversion/libsvn_subr/error.c

(error_file, error_line): Move to an #ifdef SVN_DEBUG section.

(svn_error__locate): Do nothing unless SVN_DEBUG.

(make_error_internal): Only set ->file and ->line if SVN_DEBUG.

As svn_types.h says, these are "Only used iff @c SVN_DEBUG."

* publish/doap.rdf:

Set the correct mime-type (per RFC 3870)

On the 1.6.x-svn_fs_commit_txn branch, merge in r1052041 from trunk.

Follow up to r1051978, fix a shadow warning.

I've now switched to using --enable-maintainer-mode, I assumed that

-Wall warns about shadowed variables.

Found by: philip

* subversion/mod_dav_svn/version.c

(dav_svn__checkin):

Don't shadow "apr_err", just use the one from a higher scope.

On the 1.6.x-svn_fs_commit_txn branch, merge in r1052029 from trunk.

The error from the post-commit is already self-describing so

svn_repos__post_commit_error_str() doesn't need to wrap its error with

a duplicae "post-commit error" text.

Also, i18n the text.

Found by: danielsh

* subversion/libsvn_repos/commit.c

(svn_repos__post_commit_error_str):

Wrap all text with _().

Do not wrap errors from the post-commit hook with

"Post-commit hook had error".

On the 1.6.x-svn_fs_commit_txn branch, merge in r1051988 from trunk.

Improve error messages from svn_repos__post_commit_error_str(). Also,

improve docs.

Found by: danielsh

* subversion/libsvn_repos/commit.c

(svn_repos__post_commit_error_str):

Since this skips over SVN_ERR_REPOS_POST_COMMIT_HOOK_FAILED,

include in all messages where the message is coming from,

post-commit processing or post-commit hook.

First hack at a DOAP file for Subversion, as requested by the Powers That Be

at the ASF. (But I think it's a Good Thing, too. ;)

This was autogenerated by http://projects.apache.org/create.html

* publish/doap.rdf:

New.

On the 1.6.x-svn_fs_commit_txn branch, merge in r1051978 from trunk.

Clean up error handling in svn_repos__post_commit_error_str().

Found by: danielsh

* subversion/include/private/svn_repos_private.h

(svn_repos__post_commit_error_str):

Document that this function consumes the input error and it

shouldn't be used after passing it to this function.

* subversion/libsvn_repos/commit.c

(svn_repos__post_commit_error_str):

Because this uses svn_error_purge_tracing() and doesn't return

that error to svn_repos__post_commit_error_str()'s caller, it must

be cleared here.

(close_edit):

Don't clear the error passed to svn_repos__post_commit_error_str().

* subversion/mod_dav_svn/version.c

(dav_svn__checkin):

Don't clear the error passed to svn_repos__post_commit_error_str().

On the 1.6.x-svn_fs_commit_txn branch, merge in r1051968 from trunk.

Follow up to r1051763, have commit.c include svn_repos_private.h so it

sees the public declaration of svn_repos__post_commit_error_str().

Found by: julianfoad

* subversion/libsvn_repos/commit.c:

Include svn_repos_private.h.

On the 1.6.x-svn_fs_commit_txn branch, merge in r1051778 from trunk.

Additionally:

* subversion/libsvn_repos/load.c

(close_revision):

Apply the change from trunk that was done in

subversion/libsvn_repos/load-fs-vtable.c.

* subversion/libsvn_repos/load-fs-vtable.c:

Revert the tree conflict because this file does not exist in the

branch.

* subversion/mod_dav_svn/lock.c

(append_locks):

Replace calls to dav_svn__new_error() with dav_new_error().

* subversion/mod_dav_svn/version.c:

(dav_svn__checkin),

(merge):

Replace calls to dav_svn__new_error() with dav_new_error().

Original message:

Have all remaining calls of svn_fs_commit_txn() and

svn_repos_fs_commit_txn() use the contract that a commit was

successful if the returned revision is a valid revision number. The

returned error, if any, is no longer used as an indication of commit

success.

* subversion/mod_dav_svn/version.c

(dav_svn__checkin),

(merge):

Use revision number returned from svn_repos_fs_commit_txn() to

test for a successful commit.

* subversion/mod_dav_svn/lock.c

(append_locks):

Ditto.

* subversion/libsvn_repos/load-fs-vtable.c

(close_revision):

Ditto.

* subversion/libsvn_repos/commit.c

(close_edit):

Ditto.

On the 1.6.x-svn_fs_commit_txn branch, merge in r1051775 from trunk.

The post-commit hook script should always be executed if the commit

succeeded. Use the proper test on svn_fs_txn_commit()'s result to

determine if the transaction was committed.

* subversion/libsvn_repos/fs-wrap.c

(svn_repos_fs_commit_txn):

Instead of failing immediately if svn_fs_txn_commit() returns an

error, use the returned revision number to test if the

transaction was committed.

If the transaction was committed, regardless if

svn_fs_txn_commit() returned an error, then execute the

post-commit script.

Return a composed error, using the error from svn_fs_txn_commit()

and the error from the post-commit script.

On the 1.6.x-svn_fs_commit_txn branch, merge in r1051763 from trunk.

Additionally:

* subversion/include/private/svn_repos_private.h:

Copy in from trunk @1051763 and then delete all but

svn_repos__post_commit_error_str().

* subversion/libsvn_repos/commit.c

(error_find_cause):

Static function copied from svn_error_find_cause() in trunk.

(svn_repos__post_commit_error_str):

Do not call svn_error_purge_tracing() which doesn't exist in this

branch.

Use error_find_cause() instead of svn_error_find_cause().

Original log message:

Add a private function that takes the error returned from

svn_repos_fs_commit_txn() and builds a error message string containing

either or both of the svn_fs_commit_txn() error and the

SVN_ERR_REPOS_POST_COMMIT_HOOK_FAILED wrapped post-commit error. The

function skips over tracing errors.

* subversion/include/private/svn_repos_private.h

(svn_repos__post_commit_error_str):

New private function.

* subversion/libsvn_repos/commit.c

(svn_repos__post_commit_error_str):

Implement.

(close_edit):

Use svn_repos__post_commit_error_str() instead of processing the

SVN_ERR_REPOS_POST_COMMIT_HOOK_FAILED wrapped error.

* subversion/mod_dav_svn/version.c

(merge):

Use svn_repos__post_commit_error_str() instead of processing the

SVN_ERR_REPOS_POST_COMMIT_HOOK_FAILED wrapped error.

On the 1.6.x-svn_fs_commit_txn branch, merge in r1051761 from trunk.

Constify another variable.

* subversion/libsvn_repos/commit.c

(close_edit):

Declare post_commit_err as a const char *.

On the 1.6.x-svn_fs_commit_txn branch, merge in r1051733 from trunk.

Constify. This commit will let a successive commit introduce a

utility function that generates a const char * message combining an

error from svn_fs_commit_txn() and/or from the post-commit hook.

* subversion/mod_dav_svn/dav_svn.h,

* subversion/mod_dav_svn/merge.c

(dav_svn__merge_response):

Change the char *post_commit_err argument to be a const char *.

* subversion/mod_dav_svn/version.c

(merge):

Declare the local char *post_commit_err as a const char *.

    • ?
    /branches/1.6.x-svn_fs_commit_txn/CHANGES
* branches/1.6.x-svn_fs_commit_txn:

New branch for merging in most of the the svn_fs_commit_txn() and

svn_repos_fs_commit_txn() changes that have the code implement the

documented behavior, which allows the commit to succeed along with

the the post commit FS processing to fail and/or the post-commit

hook to fail.

* STATUS:

Clarify the documentation on merging r1051744, r1051745, r1053185

and r1053241 to the 1.6.x branch.

* STATUS: Nominate r1053208.

* STATUS: Nominate r1053241.

On the 1.6.x-r1051744 branch: add the definition of SVN_TEST_ASSERT

which is not yet in this branch. There are no clean merges of this

definition, so I copied it in.

* subversion/tests/svn_test.h

(SVN_TEST_ASSERT):

New definition copied from trunk r1053238.

Make semantics of svn_error_purge_tracing() and

svn_repos__post_commit_error_str() easier to work with. Now, both do

not modify the input error chain and svn_error_purge_tracing() returns

a new chain instead of modifying the input chain.

* subversion/include/private/svn_repos_private.h

(svn_repos__validate_prop):

Document that this does not modify the input error.

* subversion/include/svn_error.h

(svn_error_purge_tracing):

Document that the input chain is not modified and should be the

chain that is cleared, not the returned chain.

* subversion/libsvn_repos/commit.c

(svn_repos__post_commit_error_str):

No longer clear the input error chain.

(clear):

Clear the error after calling svn_repos__post_commit_error_str().

* subversion/libsvn_subr/error.c

(svn_error_purge_tracing):

Reimplement to match the documented behavior.

* subversion/mod_dav_svn/deadprops.c

(save_value):

Now that the error passed to svn_error_purge_tracing() should be

cleared instead of the returned error, use another variable to

hold the purged chain.

* subversion/mod_dav_svn/util.c

(dav_svn__convert_err):

Now that the error passed to svn_error_purge_tracing() should be

cleared instead of the returned error, use another variable to

hold the purged chain.

* subversion/mod_dav_svn/version.c

(dav_svn__checkin),

(merge):

Clear the error after calling svn_repos__post_commit_error_str().

* subversion/tests/libsvn_subr/error-test.c

(test_error_purge_tracing):

Update to use the new line number that svn_error_purge_tracing()

calls SVN_ERR_ASSERT(err).

Merge r947006 from trunk:

* r947006

Fix JVM object leak.

Justification:

Without this fix, dumping repositories with a large number of revisions

or files crashes.

Votes:

+1: hwright

+0.5: blair

Add additional assertions that the the SVN_ERR_ASSERT() that

test_error_purge_tracing() is checking is coming from the expected

line number in svn_error_purge_tracing().

* subversion/tests/libsvn_subr/error-test.c

(test_error_purge_tracing):

Walk the error chain from svn_error_purge_tracing() and assert

that the SVN_ERR_ASSERTION_FAIL error is coming from the expected

line number.

Move a variable into a smaller scope.

* subversion/tests/libsvn_subr/error-test.c

(test_error_purge_tracing):

Move err2_copy into a smaller scope where it is used.

Fix a bug in svn_error_raise_on_malfunction() where it needs to call

svn_error__locate() because it is not using the svn_error_createf()

macro but the function directly.

I checked all the other uses of the undefined macros and

svn_error__locate() is properly called before make_error_internal() is

called.

* subversion/libsvn_subr/error.c

(svn_error_raise_on_malfunction):

Because the svn_error_createf() macro that otherwise would call

svn_error__locate() is undefined at the function definition, the

filename and line number where the error is being thrown from will

not be set, so add an explicit call to svn_error__locate().

* STATUS: Nominate r1053185.

On the 1.6.x-r1051744 branch: merge 1053185 from trunk, using

--accept=mine-conflict. All the conflicts are from unit tests on

trunk that are not in the 1.6.x branch.

This commit does s/SVN_ERR_ASSERT/SVN_TEST_ASSERT/g on all the new

unit tests in this branch.

* STATUS:

Move r947006 to approved with 1.5 votes, since it is a binding

change, this requires fewer votes.

In the C unit test suite, replace all uses of SVN_ERR_ASSERT() with

SVN_TEST_ASSERT() to not have a failed assertion core dump the

process.

Suggested by: danielsh

* subversion/tests/libsvn_client/client-test.c,

* subversion/tests/libsvn_subr/eol-test.c,

* subversion/tests/libsvn_wc/pristine-store-test.c,

* subversion/tests/svn_test_fs.c:

s/SVN_ERR_ASSERT/SVN_TEST_ASSERT/g.

Follow up to r1053174, replace all SVN_ERR_ASSERT() with SVN_TEST_ASSERT()

so assertions do not cause core dumps.

Suggested by: danielsh

* subversion/tests/libsvn_fs/fs-test.c,

* subversion/tests/libsvn_fs/locks-test.c,

* subversion/tests/libsvn_fs_base/changes-test.c,

* subversion/tests/libsvn_fs_base/fs-base-test.c,

* subversion/tests/libsvn_fs_fs/fs-pack-test.c,

* subversion/tests/libsvn_repos/repos-test.c:

s/SVN_ERR_ASSERT/SVN_TEST_ASSERT/g.

Follow up to 1053140, use SVN_TEST_ASSERT() instead of

SVN_ERR_ASSERT() so a unit test failure doesn't cause a core dump.

Suggested by: danielsh

* subversion/tests/libsvn_subr/error-test.c

(test_error_purge_tracing):

s/SVN_ERR_ASSERT/SVN_TEST_ASSERT/g.

Bug fix follow up to r1053140 when SVN_ERR__TRACING isn't defined.

Found by: danielsh

* subversion/tests/libsvn_subr/error-test.c

(test_error_purge_tracing):

Only assert when SVN_ERR__TRACING is defined that

svn_error_return() returns tracing error links.