I'm sending this as a patch because I don't want to rock the fragile
boat on which we've built some sort of consensus about the output of
`svn st`. If folks are against it, no sweat.
Log:
* subversion/libsvn_wc/status.c
(assemble_status): Include locked directories in the list of
intesting items returned by non-version status requests.
Patch:
Index: ./subversion/libsvn_wc/status.c
===================================================================
--- ./subversion/libsvn_wc/status.c
+++ ./subversion/libsvn_wc/status.c Thu Feb 21 16:02:32 2002
@@ -116,6 +116,7 @@
svn_boolean_t has_props;
svn_boolean_t text_modified_p = FALSE;
svn_boolean_t prop_modified_p = FALSE;
+ svn_boolean_t locked_p = FALSE;
/* Defaults for two main variables. */
enum svn_wc_status_kind final_text_status = svn_wc_status_normal;
@@ -230,26 +231,34 @@
missing. This overrides every possible state *except*
deletion. (If something is deleted or scheduled for it, we
don't care if the working file exists.) */
+
if ((path_kind == svn_node_none)
&& (final_text_status != svn_wc_status_deleted))
final_text_status = svn_wc_status_absent;
- /* 4. Easy out: unless we're fetching -every- entry, don't bother
+ /* 4. Check for locked directory. */
+
+ if (entry->kind == svn_node_dir)
+ SVN_ERR (svn_wc__locked (&locked_p, path, pool));
+
+
+ /* 5. Easy out: unless we're fetching -every- entry, don't bother
to allocate a struct for an uninteresting entry. */
if (! get_all)
if (((final_text_status == svn_wc_status_none)
|| (final_text_status == svn_wc_status_normal))
&& ((final_prop_status == svn_wc_status_none)
- || (final_prop_status == svn_wc_status_normal)))
+ || (final_prop_status == svn_wc_status_normal))
+ && (! locked_p))
{
*status = NULL;
return SVN_NO_ERROR;
}
- /* 5. Build and return a status structure. */
+ /* 6. Build and return a status structure. */
stat = apr_pcalloc (pool, sizeof(**status));
stat->entry = svn_wc__entry_dup (entry, pool);
@@ -257,15 +266,8 @@
stat->prop_status = final_prop_status;
stat->repos_text_status = svn_wc_status_none; /* default */
stat->repos_prop_status = svn_wc_status_none; /* default */
- stat->locked = FALSE;
- stat->copied = FALSE;
-
- /* 6. Check for locked directory, or if the item is 'copied'. */
-
- if (entry->kind == svn_node_dir)
- SVN_ERR (svn_wc__locked (&(stat->locked), path, pool));
- if (entry->copied)
- stat->copied = TRUE;
+ stat->locked = locked_p;
+ stat->copied = entry->copied;
*status = stat;
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:09 2006