> From: Karl Fogel [mailto:kfogel@newton.ch.collab.net]
> Sent: 13 August 2002 00:30
> S'okay, it's certainly not a regression from what we had. At the
> worst, it just doesn't quite solve the problem yet.
>
> -K
This patch should do the trick.
We can probably safely set STRICT to FALSE in svn_client_status,
since STRICT didn't do anything before the changes.
Sander
Index: subversion/libsvn_wc/status.c
===================================================================
--- subversion/libsvn_wc/status.c
+++ subversion/libsvn_wc/status.c Tue Aug 13 01:43:44 2002
@@ -555,40 +555,29 @@
{
/* Directory entries are incomplete. We must get
their full entry from their own THIS_DIR entry.
- svn_wc_entry does this for us if it can.
-
- Don't error out if svn_wc_entry can't get the
- entry for us because the path is not a (working
- copy) directory. Instead pass the incomplete
- entry to add_status_structure, since that contains
- enough information to determine the actual state
- of this entry. */
-
- svn_wc_entry_t *subdir = NULL;
- svn_error_t *svn_err;
-
- svn_err = svn_wc_entry (&subdir, fullpath, FALSE, pool);
- if (svn_err)
- {
- if (svn_err->apr_err != SVN_ERR_WC_NOT_DIRECTORY)
- return svn_err;
-
- svn_error_clear_all (svn_err);
- subdir = entry;
- }
+ svn_wc_entry does this for us if it can. */
+ SVN_ERR (svn_wc_entry (&entry, fullpath, FALSE, pool));
SVN_ERR (add_status_structure (statushash, fullpath,
- subdir, get_all,
+ entry, get_all,
strict, pool));
/* Descend only if the subdirectory is a working copy
directory (and DESCEND is non-zero ofcourse) */
- if (descend && subdir != entry)
+ if (descend)
{
- SVN_ERR (svn_wc_statuses (statushash, fullpath, descend,
- get_all, strict, no_ignore,
- pool));
+ svn_boolean_t is_wc;
+
+ SVN_ERR (svn_wc_check_wc (fullpath, &is_wc, pool));
+
+ if (is_wc)
+ {
+ SVN_ERR (svn_wc_statuses (statushash, fullpath,
+ descend, get_all,
+ strict, no_ignore,
+ pool));
+ }
}
}
else if ((kind == svn_node_file) || (kind == svn_node_none))
Index: subversion/libsvn_client/status.c
===================================================================
--- subversion/libsvn_client/status.c
+++ subversion/libsvn_client/status.c Tue Aug 13 01:29:42 2002
@@ -150,16 +150,6 @@
apr_pool_t *pool)
{
apr_hash_t *hash = apr_hash_make (pool);
- svn_boolean_t strict;
-
- /* If we're not updating, we might be getting new paths from the
- repository, and we don't want svn_wc_statuses to error on these
- paths. However, if we're not updating and we see a path that
- doesn't exist in the wc, we should throw an error */
- if (update)
- strict = FALSE;
- else
- strict = TRUE;
/* Ask the wc to give us a list of svn_wc_status_t structures.
These structures contain nothing but information found in the
@@ -169,7 +159,7 @@
function understands these flags too, and will return the correct
set of structures. */
SVN_ERR (svn_wc_statuses (hash, path, descend, get_all,
- strict, no_ignore, pool));
+ FALSE, no_ignore, pool));
/* If the caller wants us to contact the repository also... */
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Aug 13 01:38:31 2002