Checkout Tools
  • last updated 7 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
* subversion/libsvn_diff/diff_tree.c

(tree_processor_t,

svn_diff__tree_processor_create): Remove 'wrapper' struct as it was just

confusing.

Remove an unused parameter.

* subversion/include/private/svn_diff_tree.h,

subversion/libsvn_diff/diff_tree.c

(reverse_*,

svn_diff__tree_processor_reverse_create): Remove 'prefix'.

* subversion/libsvn_client/conflicts.c,

subversion/libsvn_client/diff.c,

subversion/libsvn_wc/deprecated.c: Update callers.

  1. … 4 more files in changeset.
* subversion/libsvn_diff/diff_tree.c

(includes): Add svn_io.h.

(copy_as_changed_file_added): Produce a real boolean telling whether the

file is modified.

In the repos-wc diff, hook a svn diff processor filter that can transform

copies to changes, just like we currently do when not using 'show copies as

adds'

Eventually this handling should be moved to the output processing to show

that a file is added *and* its modifications.

* subversion/include/private/svn_diff_tree.h

(svn_diff__tree_processor_copy_as_changed_create): New function.

* subversion/libsvn_diff/diff_tree.c

(svn_diff__tree_processor_filter_create): Rename baton variable.

(copy_as_changed_baton_t): New struct.

(copy_as_changed_*): New functions.

(svn_diff__tree_processor_copy_as_changed_create): New function.

* subversion/libsvn_wc/diff_editor.c

(includes): Add assert.h.

(make_edit_baton): Hook copy_as_changed transform.

(file_diff,

close_file): Use original_repos_relpath as trigger for added file

is some kind of copy as that makes more sense to the rest of the

code and avoids a db call.

  1. … 2 more files in changeset.
Add a simple filter tree processor which can cut a relpath component

from the path passed to the callbacks.

Will be used by my next patch to remove yet another (new in 1.8) diff driver.

* subversion/include/private/svn_diff_tree.h

(svn_diff__tree_processor_filter_create): New function.

* subversion/libsvn_diff/diff_tree.c

(includes): Add assert.h.

(reverse_node_absent): Fix processor reference.

(filter_*): New wrappers.

(svn_diff__tree_processor_filter_create): New function.

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

(svn_diff__tree_processor_reverse_create): Constify argument.

* subversion/libsvn_diff/diff_tree.c

(reverse_tree_baton_t): Constify variable.

(svn_diff__tree_processor_reverse_create): Constify argument.

  1. … 1 more file in changeset.
Fix inconsistent use of 'const' in the svn_diff_tree code.

Fixes GCC warning:

subversion/libsvn_client/merge.c:9109: warning: passing argument 1 of

'svn_wc__wrap_diff_callbacks' from incompatible pointer type

* subversion/include/private/svn_diff_tree.h.

subversion/libsvn_diff/diff_tree.c

(svn_diff__tree_processor_tee_create): Make both processor parameters 'const'.

* subversion/libsvn_client/merge.c

(do_merge): Declare the callback processor as 'const'.

  1. … 2 more files in changeset.
To help in slowly migrating the merge code to the tree processor, create a

tee implementation of the tree processor that sends everything to two

processors.

* subversion/include/private/svn_diff_tree.h

(svn_diff_tree_processor_t): Fix indentation of dir_changed arguments.

(svn_diff__tree_processor_tee_create): New function.

* subversion/libsvn_diff/diff_tree.c

(tee_baton_t): New struct.

(tee_node_baton_t): New struct.

(tee_*): New functions. Wrapping two processors to one.

(svn_diff__tree_processor_tee_create): New function.

  1. … 1 more file in changeset.
To facilitate merge handling, add a node_absent() callback to the diff tree processor.

* subversion/include/private/svn_diff_tree.h

(svn_diff_tree_processor_t): Add several comments and node_absent() callback.

* subversion/libsvn_diff/diff_tree.c

(default_node_absent): New function.

(svn_diff__tree_processor_create): Hook node_absent.

(reverse_node_absent): New function.

(svn_diff__tree_processor_reverse_create): Hook node_absent.

  1. … 1 more file in changeset.
* subversion/libsvn_diff/diff_tree.c

Remove C++ style comment that breaks on the buildbot.

To allow resolving serveral open issues in the repository diff support (missing

information) and merge handling (tree conflicts involving deletes), add an

improved diff callback infrastructure.

To avoid having to rev the entire api again in the next version, I pass the

structure itself to all functions. This allows future implementations to

call older functions without breaking backwards compatibility.

This commits add the processing infrastructure, including a processor that

reverses all operations. Future separate commits will include a wrapper to

the old diff api and an update to the repository diff editor to use this

new infrastructure while staying compatible via the wrapper.

* build.conf

(libsvn_diff): Add header to exports.

* subversion/include/private/svn_diff_tree.h

New file.

(svn_diff_source_t): New struct.

(svn_diff_tree_processor_t): New struct.

(svn_diff__tree_processor_create): New function.

(svn_diff__tree_processor_reverse_create): New function.

(svn_diff__source_create): New function.

* subversion/include/private/svn_diff_tree.h

New file.

(svn_diff__tree_processor_create,

(svn_diff__tree_processor_reverse_create,

(svn_diff__source_create): Implement these functions using a large number of

static helper functions.

  1. … 2 more files in changeset.