Daniel Becroft <djcbecroft@gmail.com>

r1081576, r1075802, r1061020

r1061020 | danielsh | 2011-01-19 21:52:34 +0000 (Wed, 19 Jan 2011)

Add a regression test for issue #3686.

This issue involves the executable flag being lost during a merge of
a binary file with the 'svn:executable' property set.

* subversion/tests/cmdline/merge_tests.py
  (merge_change_to_file_with_executable): New test case.

Patch by: Daniel Becroft <djcbecroft@gmail.com>
(minor tweaks by me)

r1075802 | stsp | 2011-03-01 13:00:47 +0000 (Tue, 01 Mar 2011)

Fix issue #3686 - executable bit not set during merge.

The cause was the special case in libsvn_client, which bypassed the use of
the workqueue. This logic has now been moved into libsvn_wc.

Additionally, this change allows the status of binary files (during a
dry-run merge) to be reported correctly (previously, all binary files
were reported as conflicted).

* subversion/libsvn_client/merge.c
  (merge_file_changed): Remove binary-merge special case (now in libsvn_wc).
   Remove merge_required variable (resulting in indentation changes).

* subversion/libsvn_wc/merge.c
  (merge_binary_file): Add dry_run parameter. Add the special case merging
   of binary files.
  (svn_wc__internal_merge): Remove dry_run check for binary files, and pass
   to merge_binary_file instead.

* subversion/tests/cmdline/merge_tests.py
  (merge_change_to_file_with_executable): Remove @XFail decorator.

Patch by: Daniel Becroft <djcbecroft@gmail.com>

r1081576 | stsp | 2011-03-14 21:46:38 +0000 (Mon, 14 Mar 2011)

Fix regression introduced in r1075802, where conflict files were created
during a dry-run merge.

* subversion/libsvn_wc/merge.c
  (merge_binary_file): Bail with conflict before running callback for a
   dry-run merge.

* subversion/tests/cmdline/merge_tests.py
  (dry_run_merge_conflicting_binary): Remove XFail decorator.

Patch by: Daniel Becroft <djcbecroft@gmail.com>