Create a backport branch for 1.7.x issue #4153 fix.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1309894 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1306275 and r1309865, resolving conflicts.
This is not a complete backport yet. The regression test currently fails to run.
It relies on helper functions which the 1.7.x test suite does not have.
However, manual testing shows that the fix itself works.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1309896 13f79535-47bb-0310-9956-ffa450edef68
Sync the 1.7.x-issue4153 branch with 1.7.x.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1338671 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1230798 from trunk (clean merge).
This brings in required changes for the log_diff_moved() test to run.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1338690 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1338691 from trunk.

* subversion/libsvn_client/diff.c
  (diff_repos_repos): Resolve trivial conflict: Local variables 'path_or_url1'
   and 'path_or_url2' are called 'path1' and 'path2' on this branch.
  (diff_summarize_repos_repos): Huge semantic conflict here. The summarize
   diff implementation in 1.7 does not use a separate set of diff callbacks.
   So the code merged from trunk cannot even compile. Do not call the new code
   that handles newly added/deleted diff targets in summarize mode for now.
   This means that diff --summarize now fails for newly added or deleted
   diff targets. This problem will be addressed in a separate commit.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1338702 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1338297 and r1338314 from trunk.
Clean merge without conflicts.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1338720 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1338688 from trunk.

* subversion/libsvn_client/diff.c
  (make_regular_props_hash): Use svn_property_kind() instead of
    svn_property_kind2() -- the latter only exists in trunk.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1338725 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1338708 and r1338713 from trunk.
Clean merge without conflicts.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1338727 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, fix summarize diff for added and deleted
diff targets. This is a little more involved than I had hoped.

Partially merge r1164116 from trunk. That revision renamed the
file libsvn_client/repos_diff_summarize.c to libsvn_client/diff_summarize.c.
The merge added libsvn_client/diff_summarize.c as a new file on this branch,
and produced an "local edit vs. incoming delete" tree-conflict on
repos_diff_summarize.c which was trivially resolved by reverting this file.
The intention is to keep both files alive on this branch.

The new diff_summarize.c file contains summarize diff callbacks which
can be driven by the code that handles added and deleted diff targets.

To make these callbacks accessible within libsvn_client, declare the
function svn_client__get_diff_summarize_callbacks() in libsvn_client/client.h.

On trunk, svn_client__get_diff_summarize_callbacks() replaced the
function svn_client__get_diff_summarize_editor(), but in 1.7 we want
to keep the latter function around to minimize changes made to the
summarize diff code.

Also, effectively merge r1338739 from trunk in this commit to fix
instantiation of the summarize diff callbacks.

* subversion/libsvn_client/diff.c
  (diff_summarize_repos_repos): Handle added and deleted diff targets
   by calling diff_repos_repos_added_or_deleted_target() if one of
   the diff targets does not exist.

* subversion/libsvn_client/client.h
  (svn_client__get_diff_summarize_callbacks): Declare.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1338753 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1338748 from trunk (clean merge).


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1338755 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1339159 from trunk (clean merge).


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1339163 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1341548 from trunk.

I'm not quite happy to inflate this branch even more. But r1341548 depends
on a new helper function introduced to 1.7.x in this backport branch.
I'd rather have one large backport nomination than two conflicting ones.

* subversion/libsvn_client/diff.c
  (diff_repos_wc): Resolve a small merge conflict due to local variables
   that were renamed on trunk ('path_or_url1' vs. just 'path1', etc.)


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1341549 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch, merge r1341562 from trunk (clean merge).


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1341563 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch: Sync with ^/subversion/branches/1.7.x@1392816

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1392818 13f79535-47bb-0310-9956-ffa450edef68
Do a syncup merge on the 1.7.x-issue4153 branch.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1521935 13f79535-47bb-0310-9956-ffa450edef68
Do a syncup merge on the 1.7.x-issue4153 branch.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1535553 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch: Merge r1535551 from trunk


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1535554 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch: Remove some duplicated tests.

r1514944 on 1.7.x added some tests that are roughly identical to the tests
being added by this branch.  This branch is pulling in the tests that match
the tests on trunk for this purpose.  So keep those tests.

* subversion/tests/cmdline/diff_tests.py:
  (basic_diff_summarize): Remove duplicated add file and dir tests.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1535590 13f79535-47bb-0310-9956-ffa450edef68
On the 1.7.x-issue4153 branch merge r1535591 from trunk.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x-issue4153@1535592 13f79535-47bb-0310-9956-ffa450edef68
Merge the 1.7.x-issue4153 branch:

 * r1306275, and other revisions
   New diff support code for added/deleted files and directories.
   Fixes issue #4153, "svn log --diff" on moved file gives "not found",
   and other problems such as issue #4421, "diff --summarize of a child of
   a newly added child causes crash" (over HTTP only).
   Justification:
     The current code (introduced in 1.7.x in the r1207351 backport commit)
     produces inconsistent paths in diff output (see
     http://svn.haxx.se/dev/archive-2012-03/0385.shtml), and it also breaks
     with the paradigm that the target of an editor drive may never have more
     than one path component (which according to cmpilato is an API violation).
   Notes:
     Please read the branch and related trunk log messages for detailed notes
     about these changes.
     breser: Not so fond of the temp file use but 1.8.x is out with a much
     better implementation anyway.
   Branch:
     ^/subversion/branches/1.7.x-issue4153
   Votes:
     +1: breser, julianfoad, stsp


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.7.x@1539234 13f79535-47bb-0310-9956-ffa450edef68