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

Changeset 1416731 is being indexed.

* subversion/include/svn_editor.h

Minor wording and typo fixes.

Add a set of target/resulting children to the alter_directory() call.

For rationale, see:

* subversion/include/svn_editor.h:

(...): update docco on driving restrictions

(svn_editor_alter_directory): add CHILDREN and update docstring

* subversion/libsvn_delta/editor.c:

(svn_editor_alter_directory): add CHILDREN and pass to callback.

adjust initial assertions. add a bit of currently-unused code for

validating future adds/deletes.

* subversion/libsvn_repos/commit.c:

(alter_directory_cb): add CHILDREN param and pass to FS editor

* subversion/libsvn_fs/editor.c:

(alter_directory_cb): add CHILDREN param and ignore it.

* subversion/libsvn_delta/compat.c:

(process_actions): pass NULL for CHILDREN. leave todo marker.

(alter_directory_cb): add CHILDREN param. leave todo question.

  1. … 4 more files in changeset.
Allow an editor implementation to retrieve its baton from outside of

the callbacks.

* subversion/include/svn_editor.h:

* subversion/libsvn_delta/editor.c:

(svn_editor_get_baton): new function

  1. … 1 more file in changeset.
Docco improvement.

* subversion/include/svn_editor.h:

(svn_editor_alter_directory): note that PROPS may not be NULL

* subversion/include/svn_editor.h (svn_editor_alter_directory): Tweak docstring.

Various documentation updates, clarifications, and a couple new


* subversion/include/svn_editor.h:

(reentrancy): clarify that the *objects* are not reentrant, but the

overall API certainly is

(restrictions): reflow a paragraph

(paths): document the "need" to use the repository root as the

overall editor root, to properly support copy sources. rewrite the

"update" example, as the driver/receiver concerns seemed confused.

(svn_editor_copy): add a note about SRC_RELPATH and refer back to

the general docco

(svn_editor_move, svn_editor_rotate): add questions about paths

outside the scope of the receiver

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.