Checkout Tools
  • last updated 1 hour ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1302551 is being indexed.

The Ev2 API is not reentrant. Mark that in the documentation, and

enforce it in debug builds.

* subversion/include/svn_editor.h:

(...): note that the API is not reentrant

* subversion/libsvn_delta/editor.c:

(struct svn_editor_t): add debug-only flag WITHIN_CALLBACK

(START_CALLBACK, END_CALLBACK): new macros to test/set the callback

tracker. provide non-debug forms, too.

(check_cancel): helper function to check for cancellation, along

with guards against reentrancy.

(svn_editor_add_directory, svn_editor_add_file,

svn_editor_add_symlink, svn_editor_add_absent,

svn_editor_alter_directory, svn_editor_alter_file,

svn_editor_alter_symlink, svn_editor_delete, svn_editor_copy,

svn_editor_move, svn_editor_rotate, svn_editor_complete,

svn_editor_abort): use new callback tracking macros

  1. … 1 more file in changeset.
* subversion/include/svn_editor.h:

Complete a sentence started in r1296034.

Document the expected checksum kind for use with the editor.

* subversion/include/svn_editor.h


* subversion/libsvn_delta/editor.c

(svn_editor_add_file, svn_editor_alter_file): Assert that we have the correct

checksum kind.

  1. … 1 more file in changeset.
* subversion/include/svn_editor.h

(svn_editor_rotate): Fix Doxygen mark-up.

Strengthen the discussion and checks around passing all children into

an add_directory() call.

* subversion/include/svn_editor.h:

(...): clarify that children must be mentioned in the parent's

add_directory call.

* subversion/libsvn_delta/editor.c:

(...): reorder some of the marker declarations and add docs

(marker_added_dir, MARKER_ADDED_DIR): new marker

(MARK_RELPATH): helper macro for marking stuff in completed_nodes


(MARK_ADDED_DIR): new marking helper for nodes from add_directory.

another variant for when checking is disabled.

(CHECK_UNKNOWN_CHILD): new validation to ensure a child under an

added directory was mentioned as a child. plus a variant for when

checking is disabled.

(check_unknown_child): helper for above

(svn_editor_add_directory): mark this specifically as an added dir.

use the new CHECK_UNKNOWN_CHILD() checking macro.

(svn_editor_add_file, svn_editor_add_symlink,

svn_editor_add_absent): use the new CHECK_UNKNOWN_CHILD macro.

  1. … 1 more file in changeset.
Add documentation for the alter_* callbacks and the updated (removal)

of various constraints in the edit drive process.

* subversion/include/svn_editor.h:

(...): adjust documentation about the constraints in the drive process

(svn_editor_alter_directory, svn_editor_alter_file,

svn_editor_alter_symlink): add documentation

(svn_editor_add_directory, svn_editor_add_file,

svn_editor_add_symlink): note that PROPS may not be NULL. same

for some other arguments.

* subversion/libsvn_delta/editor.c:

(svn_editor_add_directory, svn_editor_add_file,

svn_editor_add_symlink, svn_editor_alter_directory,

svn_editor_alter_file, svn_editor_alter_symlink): add some

constraints on which parameters may not be NULL (and some

cross-param constraints).

  1. … 1 more file in changeset.
Update the Ev2 API, per recent discussions. This introduces the

alter_* callbacks to atomically perform all changes to a node (rather

than the old paired-call approach).

Documentation for the changes is incomplete, for a future revision.

The compatibility shims have not been fully-updated.

Current number of Ev2 test failures (with broken shims): 1140

* subversion/include/svn_editor.h:

(...): note areas that need updated docco

(svn_editor_cb_set_props_t, svn_editor_cb_set_text_t,

svn_editor_cb_set_target_t, svn_editor_setcb_set_props,

svn_editor_setcb_set_text, svn_editor_setcb_set_target): removed

(svn_editor_cb_alter_directory_t, svn_editor_cb_alter_file_t,

svn_editor_cb_alter_symlink_t): new callback typedefs

(svn_editor_setcb_alter_directory, svn_editor_setcb_alter_file,

svn_editor_setcb_alter_symlink): new functions to set callbacks

(svn_editor_cb_many_t): remove old set_* callbacks. add alter_*

(svn_editor_set_props, svn_editor_set_text, svn_editor_set_target):


(svn_editor_alter_directory, svn_editor_alter_file,

svn_editor_alter_symlink): new functions to drive alter_* callbacks

* subversion/libsvn_delta/editor.c:

(svn_editor_t): remove NEEDS_TEXT_OR_TARGET hash. no longer needed.

(svn_editor_create): do not initialize NEEDS_TEXT_OR_TARGET member

(svn_editor_setcb_set_props, svn_editor_setcb_set_text,

svn_editor_setcb_set_symlink): removed

(svn_editor_setcb_alter_directory, svn_editor_setcb_alter_file,

svn_editor_setcb_alter_symlink): new setters

(svn_editor_setcb_many): remove set_* copying. add alter_*

(svn_editor_set_props): renamed to ...

(svn_editor_alter_directory): ... this. removed COMPLETE arg. switch

to the ALTER_DIRECTORY callback. tweak the debug ordering check.

(svn_editor_set_text): renamed to ...

(svn_editor_alter_file): ... this. add PROPS argument, pass to new

ALTER_FILE callback. adjust the debug ordering checks.

(svn_editor_set_target): renamed to ...

(svn_editor_alter_symlink): ... this. add PROPS argument. pass to

new ALTER_SYMLINK callback. adjust the debug ordering checks.

(svn_editor_complete): no need to verify emptiness of NEEDS_TEXT_OR_TARGET

* subversion/libsvn_delta/compat.c:

(process_actions): remove calls to the old set_* editor functions.

leave a comment about possible future implementation.

(set_props_cb): renamed to ...

(alter_directory_cb): ... this. remove COMPLETE arg.

(set_text_cb): renamed to ...

(alter_file_cb): ... this. add PROPS arg and pass to build().

(set_target_cb): renamed to ...

(alter_target_cb): ... this. add PROPS arg. leave comments.

(editor_from_delta): adjust the SETCB_MANY structure for the callbacks.

  1. … 2 more files in changeset.
* subversion/include/svn_editor.h

(svn_editor_set_text): Add a question.

Add some clarifications to the Ev2 documentation, based on some IRC

discussions with danielsh.

* subversion/include/svn_editor.h:

(...): add a section on "Timing and State" to clarify how the

editing calls refer to the receiver's current state. provide a

couple examples.

Add a rotation API to Ev2, per the discussion started at:

* subversion/include/svn_editor.h:

(...): update comments to discuss the rotate API

(svn_editor_cb_rotate_t): new callback type for rotations

(svn_editor_setcb_rotate): new callback setter

(svn_editor_cb_many_t): add a member callback for rotation

(svn_editor_rotate): new driving function for rotation

* subversion/libsvn_delta/editor.c:

(svn_editor_setcb_rotate, svn_editor_rotate): new

(svn_editor_setcb_many): copy the rotation callback

  1. … 1 more file in changeset.
* subversion/include/svn_editor.h:

Add some notes about the implementation plan.

* subversion/include/svn_editor.h: A few simple documentation updates.
* subversion/include/svn_editor.h: Typo fix, following r1197266.
* subversion/include/svn_editor.h:

Add a note about RFC 2119 compliance.

Use svn_kind_t in place of svn_node_kind_t in Ev2, and it's backward compat


* subversion/include/svn_editor.h,





* subversion/libsvn_wc/update_editor.c

(fetch_kind_func): Update param type and simplify function.

  1. … 4 more files in changeset.
* subversion/include/svn_editor.h:

(Restrictons): more clarifications

Document more restrictions about driving Ev2 and clarify some other


* subversion/include/svn_editor.h:

(Restrictions): add docco about modifying nodes more than once

(svn_editor_move): fix my answer to stsp

(svn_editor_complete, svn_editor_abort): s/tree delta/edit/

Pass a file's new contents when it is first added. There is no reason to

require a separate set_text() call.

Adjust some assertions in the editor, based on the above.

* subversion/include/svn_editor.h:

(): adjust module docs to remove the need for set_text() after add_file().

(svn_editor_cb_add_file_t): add CHECKSUM and CONTENTS params.

(svn_editor_add_file): add CHECKSUM and CONTENTS params.

* subversion/libsvn_delta/compat.c:

(add_directory_cb): add CHECKSUM and CONTENTS params

* subversion/libsvn_delta/editor.c:

(svn_editor_t): remove the NEEDS_TEXT member

(svn_editor_create): do not initialize NEEDS_TEXT member

(svn_editor_add_directory): mark the directory as completed

(svn_editor_add_file): add CHECKSUM and CONTENTS params. pass them to

the callback. mark the file as completed, and skip the NEEDS_TEXT hash


(svn_editor_add_symlink): mark the symlink as completed

(svn_editor_add_absent): mark the absent node as completed

(svn_editor_set_text): no longer update the NEEDS_TEXT member

(svn_editor_move): ensure the source node has not been altered before.

do not mark the source as completed since a new node may be added.

also skip marking the destination since a set_props, set_text, or

set_target may arrive.

(svn_editor_complete, svn_editor_abort): make sure the editor has not

been marked as finish (avoid double calls)

  1. … 2 more files in changeset.
* subversion/include/svn_editor.h

(svn_editor_set_props): Update docstring in answer to a question, and remove

said question.

* subversion/include/svn_editor.h

(svn_editor_set_props): Add a couple of notes.

Some doxygen tweaks.

* subversion/include/svn_editor.h:

Explicitly link to existing datatypes and macros.

* subversion/include/svn_wc.h

(svn_wc_notify_t): Fix a busted link.

(svn_wc_info_t): Doc a few members.

  1. … 1 more file in changeset.
Move svn_editor.h to the public include directory, with the hopes of actually

implementing some of it by 1.8, and thereby fixing the build.

* subversion/include/svn_delta.h,



Update references.

* subversion/include/private/svn_editor.h:

Move from here...

* subversion/include/svn_editor.h: here.

  1. … 4 more files in changeset.
We don't want to publish the svn_editor API for 1.7. Move the header

into the private area.

* subversion/include/svn_editor.h:

(): moved to ...

* subversion/include/private/svn_editor.h:

(): ... here

* subversion/libsvn_delta/editor.c:

(): adjust svn_editor.h include to account for the move

  1. … 2 more files in changeset.
* subversion/include/svn_fs.h,

* subversion/include/svn_diff.h,

* subversion/include/svn_dav.h,

* subversion/include/svn_mergeinfo.h,

* subversion/include/svn_editor.h,

* subversion/include/svn_repos.h,

* subversion/include/svn_delta.h,

* subversion/include/svn_subst.h,

* subversion/include/svn_types.h,

* subversion/include/svn_config.h,

* subversion/include/svn_io.h,

* subversion/include/svn_wc.h,

* subversion/include/svn_cmdline.h,

* subversion/include/svn_client.h,

* subversion/include/svn_ra.h

Fix typos in comments.

  1. … 14 more files in changeset.
Once and for all, name all our anonymous struct/enum typedefs.

Follows up on r1040058, and with thanks to Danny Trebbien.

* everywhere:

Change 'typedef struct {} foo_t;' to 'typedef struct foo_t {} foo_t;'.

* subversion/libsvn_ra_serf/fake_sspi.h

(PSecurityFunctionTable, SecurityFunctionTable):

Manually effect the same change in the single pointer-to-struct typedef.

  1. … 95 more files in changeset.
In this revision a mass spelling correction OCCURRED.

* subversion/bindings/javahl/native/JNIUtil.h (JNIUtil),

subversion/include/svn_editor.h (svn_editor_t),

subversion/libsvn_subr/eol.c (svn_eol__detect_file_eol),

subversion/tests/cmdline/ (natural_history_filtering):

s/occured/occurred/ in comments.

* subversion/svn/export-cmd.c (svn_cl__export),

subversion/svn/switch-cmd.c (svn_cl__switch),

subversion/svn/update-cmd.c (svn_cl__update):

s/occured/occurred/ in an error message.

  1. … 6 more files in changeset.
* subversion/include/svn_editor.h: Ask a question.

* subversion/include/svn_editor.h:

(): answer stsp's question

* subversion/include/svn_editor.h: Ask a question about this API.

Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.


Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.