Created a branch for researching a variant of "svn st -u" that ignores local changes in the working copy.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1581845 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch:

* BRANCH-README: New file.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1581860 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Revise the svn_client_status API.

* subversion/include/svn_client.h
  (svn_client_status6): New; updated docstring from previous version.
  (svn_client_status5): Deprecate.
* subversion/include/private/svn_wc_private.h
  (svn_wc__get_status_editor): Add ignore_local_mods parameter.

* subversion/libsvn_client/status.c
  (svn_client_status6): Renamed from svn_client_status5.
   Renamed parameter 'update' to 'check_out_of_date' and added
   parameter 'ignore_local_mods'.
  (do_external_status): Renamed parameter 'update' to 'check_out_of_date'
   and added parameter 'ignore_local_mods'. Calls svn_client_status6.
* subversion/libsvn_client/deprecated.c
  (svn_client_status5): Implement backwards-compat wrapper for the revised API.

* subversion/libsvn_wc/status.c
  (struct edit_baton): New member 'ignore_local_mods'
  (internal_status, tweak_statushash): New parameter 'ignore_local_mods'.
   Update all callers.
  (svn_wc__get_status_editor): New parameter 'ignore_local_mods'.
  (internal_status): New parameter 'ignore_local_mods'.
   Tweak implementation to (temporarily) work when it's set.
  (svn_wc_status3): Update call to internal_status().
* subversion/libsvn_wc/deprecated.c
  (svn_wc_get_status_editor5): Invoke svn_wc__get_status_editor with
   ignore_local_mods = FALSE.

* subversion/tests/libsvn_client/client-test.c
  (test_remote_only_status,
   remote_only_status_receiver,
   status_to_char, compare_status_paths): New test case and helper functions.
  (test_funcs): Add test_remote_only_status, marked as XFAIL.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1581868 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Replace all uses of svn_client_status5
in our code base, including JavaHL.

* subversion/svn/status-cmd.c
  (svn_cl__status): Call svn_client_status6 instead of svn_client_status5.

* subversion/tests/libsvn_client/client-test.c
  (test_funcs): Mark test_remote_only_status as work-in-progress.

[in subversion/bindings/javahl]
* src/org/apache/subversion/javahl/ISVNClient.java
  (ISVNClient.status): Add new overload and deprecate existing method.
* src/org/apache/subversion/javahl/SVNClient.java
  (ISVNClient.status): Update native declaration, implement deprecated method.
* native/SVNClient.h
  (SVNClient::status): Add new parameters.
* native/SVNClient.cpp
  (SVNClient::status): Update signature.
   Call svn_client_status6 instead of svn_client_status5.
* native/org_apache_subversion_javahl_SVNClient.cpp
  (Java_org_apache_subversion_javahl_SVNClient_status): Update signature
   and call to SVNClient::status.

* tests/org/apache/subversion/javahl/BasicTests.java:
   Update all uses of ISVNClient.status.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1582083 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: First approximation of a working solution.

* subversion/libsvn_wc/status.c
  (struct edit_baton): Move member ignore_local_mods from here ...
  (struct walk_status_baton): ... to here. Update all uses.
  (assemble_status): Add argument ignore_local_mods. Update all uses.
   When set, do not check for missing nodes in the working copy.
  (read_base_node_info): New.
  (get_dir_status): Update implementation to for ignore_local_mods.
  (internal_status): Likewise.

* subversion/tests/libsvn_client/client-test.c
  (test_remote_only_status): Add another validity check and set to PASS.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1582756 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Describe new solution.

* BRANCH-README: Update branch description.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1583113 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Update implementation to match description.

* subversion/include/svn_client.h
  (svn_client_status6): Rename parameter ignore_local_mods to
   check_working_copy, inverting the semantics of the value.
   Update all uses to the new semantics of the parameter.
* subversion/include/private/svn_wc_private.h
  (svn_wc__get_status_editor): Likewise.
* subversion/libsvn_client/status.c
  (do_external_status, svn_client_status6): Likewise.
* subversion/svn/status-cmd.c
  (svn_cl__status): Likewise.

* subversion/libsvn_wc/status.c:
   Apply the ignore_local_mods -> check_working_copy change.
  (read_base_node_info): Removed.
  (get_dir_status): Account for all status info in the wc-db, but ignore
   locally added files.
  (internal_status): Likewise.

* subversion/tests/libsvn_client/client-test.c
  (test_remote_only_status): Update test case.

[in subversion/bindings/javahl]
* native/SVNClient.h, native/SVNClient.cpp (SVNClient::status):
   Rename parameter ignoreLocal to onDisk, in line with the core API change.
* native/org_apache_subversion_javahl_SVNClient.cpp
  (Java_org_apache_subversion_javahl_SVNClient_status): Likewise.
* src/org/apache/subversion/javahl/ISVNClient.java
  (ISVNClient.status): Likewise.
* src/org/apache/subversion/javahl/SVNClient.java
  (ISVNClient.status): Likewise, and fix deprecated wrapper.

* tests/org/apache/subversion/javahl/BasicTests.java:
   Update all uses of ISVNClient.status().


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1583335 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: sync with trunk up to r1583335.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1583338 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Fix deprecated wrapper.

* subversion/libsvn_wc/deprecated.c (svn_wc_get_status_editor5):
   Use the correct value for the check_working_copy parameter.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1583353 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Extend test case.

* subversion/tests/libsvn_client/client_test.c (test_remote_only_status):
   Verify behaviour with local propchanges.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1583365 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Do not report local replacements.

* subversion/include/svn_client.h (svn_client_status6): Update docstring.
* subversion/libsvn_wc/status.c (assemble_status): Ignore local adds.
   Report local replacements as deletions of the working node.
  (get_dir_status): Remove redundant (and incorrect) filter for additions.
* subversion/tests/libsvn_client/client-test.c (test_remote_only_status):
   Extend test case with an example of a local replacement.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1583599 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: sync with trunk up to r1583803.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1583804 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: sync with trunk up to r1584342.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1584364 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Use new queries that return only BASE
tree info to implement the remote-only status. Reverts most of r1583599.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_base_read_info, svn_wc__db_base_read_info_fn_t): New.
  (svn_wc__db_read_children_info, svn_wc__db_read_single_info):
   Added base_tree_only parameter and updated docstrings.
* subversion/libsvn_wc/wc_db.c
  (read_info, read_children_info): Added base_tree_only parameter,
   and adjusted the implementation to use new queries that only
   scan the BASE tree in the wc.db if the parameter is set.
   Updated all callers.
  (read_single_info,
   svn_wc__db_read_single_info,
   svn_wc__db_read_children_info): Added base_tree_only parameter.
  (read_info_with_txn): New; renamed from svn_wc__db_read_info and
   added base_tree_only parameter.
  (svn_wc__db_read_info, svn_wc__db_base_read_info): Implemented
   as wrappers for read_info_with_txn.

* subversion/libsvn_wc/status.c:
   Updated all calls to svn_wc__db_read_children_info() and
   svn_wc__db_read_single_info().
  (assemble_status): Reverted changes made in r1583599.
  (get_dir_status): Likewise.
  (internal_status): Use svn_wc__db_base_read_info() when not scanning
   the working copy.
  (svn_wc_status3): Fixed thinko, pass the correct value to internal_status().

* subversion/libsvn_wc/wc-queries.sql
  (STMT_SELECT_BASE_NODE_INFO,
   STMT_SELECT_BASE_NODE_INFO_WITH_LOCK,
   STMT_SELECT_BASE_NODE_CHILDREN_INFO): New variants of existing statements
    that only scan the BASE tree, but otherwise return results in the same
    format.

* subversion/tests/libsvn_client/client-test.c
  (test_remote_only_status): Adjusted test results for new behaviour of
   remote-only status.

* subversion/libsvn_wc/copy.c,
  subversion/libsvn_wc/diff_editor.c,
  subversion/tests/libsvn_wc/op-depth-test.c:
   Update calls to svn_wc__db_read_children_info().


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1585988 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: synced with trunk up to rr1585988.

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1585990 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Housekeeping.

* subversion/include/svn_client.h (svn_client_status6),
  subversion/include/private/svn_wc_private.h (svn_wc__get_status_editor):
   Updated documentation.
* subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
  (ISVNClient.status): Updated documentation.
* subversion/libsvn_client/status.c (svn_client_status6): Added comment.
* subversion/tests/libsvn_client/client-test.c (status_to_char): Removed comment.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1585996 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Perform some delicate surgery with a hammer.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_base_read_info, svn_wc__db_base_read_info_fn_t): Remove.
* subversion/libsvn_wc/wc_db.c
  (svn_wc__db_read_info): Removed wrapper implementation.
  (read_info_with_txn): Renamed back to svn_wc__db_read_info.
  (svn_wc__db_base_read_info): Removed.
* subversion/libsvn_wc/status.c
  (internal_status): Use svn_wc__db_base_get_info() in the remote-only case.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1586033 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Simplify the implementation a bit more.

* subversion/libsvn_wc/wc_db.c
  (read_info): Removed parameter base_tree_only. Updated all callers.
  (read_single_info): In the remote-only case, call
   svn_wc__db_base_get_info_internal() and interpret the results to
   construct the info for the base node.

* subversion/libsvn_wc/wc-queries.sql
  (STMT_SELECT_BASE_NODE_INFO, STMT_SELECT_BASE_NODE_INFO_WITH_LOCK):
   Removed two unused statements.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1586051 13f79535-47bb-0310-9956-ffa450edef68
On the remote-only-status branch: Restore whitespace and formatting
in parts of the implementation that ended up being the same as
on trunk.

No functional change.

* subversion/libsvn_wc/status.c (get_dir_status): Remove empty line.
* subversion/libsvn_wc/wc_db.c
  (get_info_for_copy, remove_node_txn,
   read_info, relocate_txn, svn_wc__db_node_hidden): Restore formatting.


git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/remote-only-status@1586058 13f79535-47bb-0310-9956-ffa450edef68
Reintegrated the remote-only-status branch.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1586146 13f79535-47bb-0310-9956-ffa450edef68