Revise some "show_hidden" handling for correctness, and for performance. This also corrects a problem introduced in walk_entries3() in r37241.
Revise some "show_hidden" handling for correctness, and for performance.
This also corrects a problem introduced in walk_entries3() in r37241.

* subversion/libsvn_wc/entries.c:
  (entry_is_hidden): replace with the algorithm that was in *actual* use
    in prune_deleted. specifically, depth=exclude entries should be
    labeled as hidden.
  (svn_wc_entry): optimization: fetch ALL the entries (to avoid a call to
    prune_deleted), and then manually hide an entry as appropriate.
  (prune_deleted): remove the old tests and just call entry_is_hidden.
    note that the "preflight" code to see if hidden items are present did
    NOT have the correct logic. it declared some false positives which
    could then cause a second, identical list to be created (ie. it
    thought an entry is hidden, but it got put in the list anyways)
  (svn_wc_walk_entries3): if the root of the walk is hidden, and the user
    asked not to see hidden entries, then we should report the node as
    unversioned (per depth_test 36). this is not truly correct behavior,
    as we should be able to report "hidden, but versioned" for the root.
    also note that we manually look for a hidden node, rather than having
    svn_wc_entry() do it (so we can be sure of what is happening).


git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@877342 13f79535-47bb-0310-9956-ffa450edef68

YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion