You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2010/03/10 19:28:10 UTC
svn commit: r921503 - in /subversion/trunk/subversion/libsvn_wc: adm_ops.c
deprecated.c wc.h
Author: cmpilato
Date: Wed Mar 10 18:28:10 2010
New Revision: 921503
URL: http://svn.apache.org/viewvc?rev=921503&view=rev
Log:
Continue doing what it takes to get deprecated stuff into deprecated.c.
* subversion/libsvn_wc/wc.h
(svn_wc__process_committed_internal): New prototype (and real
docstring!) for what was adm_ops.c:process_committed_internal().
(svn_wc__prop_array_to_hash): New prototype (for the function that
was adm_ops.c:convert_to_hash()).
* subversion/libsvn_wc/adm_ops.c
(svn_wc__prop_array_to_hash): Was convert_to_hash().
(svn_wc_queue_committed3): Track renamed function.
(svn_wc__process_committed_internal): Was process_committed_internal().
(svn_wc_process_committed_queue2): Track renamed function.
(svn_wc_process_committed4): Move to deprecated.c
* subversion/libsvn_wc/deprecated.c
(): Include some necessary headers (svn_time.h, workqueue.h).
(svn_wc_process_committed4): Moved here from adm_ops.c. Also, track
renamed functions.
Modified:
subversion/trunk/subversion/libsvn_wc/adm_ops.c
subversion/trunk/subversion/libsvn_wc/deprecated.c
subversion/trunk/subversion/libsvn_wc/wc.h
Modified: subversion/trunk/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_ops.c?rev=921503&r1=921502&r2=921503&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Wed Mar 10 18:28:10 2010
@@ -459,19 +459,19 @@ process_committed_leaf(svn_wc__db_t *db,
/* Sets *ADM_ABSPATH to the path of the work queue. */
-static svn_error_t *
-process_committed_internal(svn_wc__db_t *db,
- const char *local_abspath,
- svn_boolean_t recurse,
- svn_revnum_t new_revnum,
- apr_time_t new_date,
- const char *rev_author,
- apr_hash_t *new_dav_cache,
- svn_boolean_t no_unlock,
- svn_boolean_t keep_changelist,
- const svn_checksum_t *checksum,
- const svn_wc_committed_queue_t *queue,
- apr_pool_t *scratch_pool)
+svn_error_t *
+svn_wc__process_committed_internal(svn_wc__db_t *db,
+ const char *local_abspath,
+ svn_boolean_t recurse,
+ svn_revnum_t new_revnum,
+ apr_time_t new_date,
+ const char *rev_author,
+ apr_hash_t *new_dav_cache,
+ svn_boolean_t no_unlock,
+ svn_boolean_t keep_changelist,
+ const svn_checksum_t *checksum,
+ const svn_wc_committed_queue_t *queue,
+ apr_pool_t *scratch_pool)
{
svn_wc__db_kind_t kind;
@@ -533,13 +533,14 @@ process_committed_internal(svn_wc__db_t
this one committed item. */
if (kind == svn_wc__db_kind_dir)
{
- SVN_ERR(process_committed_internal(db, this_abspath,
- TRUE /* recurse */,
- new_revnum, new_date,
- rev_author,
- NULL, TRUE /* no_unlock */,
- keep_changelist, NULL,
- queue, iterpool));
+ SVN_ERR(svn_wc__process_committed_internal(db, this_abspath,
+ TRUE /* recurse */,
+ new_revnum, new_date,
+ rev_author,
+ NULL,
+ TRUE /* no_unlock */,
+ keep_changelist, NULL,
+ queue, iterpool));
SVN_ERR(svn_wc__wq_run(db, this_abspath, NULL, NULL, iterpool));
}
else
@@ -576,10 +577,9 @@ process_committed_internal(svn_wc__db_t
}
-/* */
-static apr_hash_t *
-convert_to_hash(const apr_array_header_t *wcprop_changes,
- apr_pool_t *result_pool)
+apr_hash_t *
+svn_wc__prop_array_to_hash(const apr_array_header_t *wcprop_changes,
+ apr_pool_t *result_pool)
{
int i;
apr_hash_t *dav_cache;
@@ -642,7 +642,7 @@ svn_wc_queue_committed3(svn_wc_committed
cqi->no_unlock = !remove_lock;
cqi->keep_changelist = !remove_changelist;
cqi->checksum = checksum;
- cqi->new_dav_cache = convert_to_hash(wcprop_changes, queue->pool);
+ cqi->new_dav_cache = svn_wc__prop_array_to_hash(wcprop_changes, queue->pool);
APR_ARRAY_PUSH(queue->queue, committed_queue_item_t *) = cqi;
@@ -704,13 +704,14 @@ svn_wc_process_committed_queue2(svn_wc_c
if (queue->have_recursive && have_recursive_parent(queue->queue, i))
continue;
- SVN_ERR(process_committed_internal(wc_ctx->db, cqi->local_abspath,
- cqi->recurse,
- new_revnum, new_date, rev_author,
- cqi->new_dav_cache,
- cqi->no_unlock,
- cqi->keep_changelist,
- cqi->checksum, queue, iterpool));
+ SVN_ERR(svn_wc__process_committed_internal(wc_ctx->db, cqi->local_abspath,
+ cqi->recurse, new_revnum,
+ new_date, rev_author,
+ cqi->new_dav_cache,
+ cqi->no_unlock,
+ cqi->keep_changelist,
+ cqi->checksum, queue,
+ iterpool));
SVN_ERR(svn_wc__wq_run(wc_ctx->db, cqi->local_abspath, NULL, NULL,
iterpool));
@@ -723,48 +724,6 @@ svn_wc_process_committed_queue2(svn_wc_c
return SVN_NO_ERROR;
}
-svn_error_t *
-svn_wc_process_committed4(const char *path,
- svn_wc_adm_access_t *adm_access,
- svn_boolean_t recurse,
- svn_revnum_t new_revnum,
- const char *rev_date,
- const char *rev_author,
- const apr_array_header_t *wcprop_changes,
- svn_boolean_t remove_lock,
- svn_boolean_t remove_changelist,
- const unsigned char *digest,
- apr_pool_t *pool)
-{
- svn_wc__db_t *db = svn_wc__adm_get_db(adm_access);
- const char *local_abspath;
- const svn_checksum_t *checksum;
- apr_time_t new_date;
-
- if (rev_date)
- SVN_ERR(svn_time_from_cstring(&new_date, rev_date, pool));
- else
- new_date = 0;
-
- if (digest)
- checksum = svn_checksum__from_digest(digest, svn_checksum_md5, pool);
- else
- checksum = NULL;
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, pool));
-
- SVN_ERR(process_committed_internal(db, local_abspath, recurse,
- new_revnum, new_date, rev_author,
- convert_to_hash(wcprop_changes, pool),
- !remove_lock,!remove_changelist,
- checksum, NULL,
- pool));
-
- /* Run the log file(s) we just created. */
- return svn_error_return(svn_wc__wq_run(db, local_abspath, NULL, NULL, pool));
-}
-
-
/* Recursively mark a tree DIR_ABSPATH with schedule svn_wc_schedule_delete
and a KEEP_LOCAL flag. */
Modified: subversion/trunk/subversion/libsvn_wc/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/deprecated.c?rev=921503&r1=921502&r2=921503&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/deprecated.c (original)
+++ subversion/trunk/subversion/libsvn_wc/deprecated.c Wed Mar 10 18:28:10 2010
@@ -30,6 +30,7 @@
#include "svn_subst.h"
#include "svn_pools.h"
#include "svn_props.h"
+#include "svn_time.h"
#include "svn_dirent_uri.h"
#include "private/svn_wc_private.h"
@@ -37,6 +38,7 @@
#include "wc.h"
#include "lock.h"
#include "props.h"
+#include "workqueue.h"
#include "svn_private_config.h"
@@ -547,6 +549,49 @@ svn_wc_get_pristine_contents(svn_stream_
svn_error_t *
+svn_wc_process_committed4(const char *path,
+ svn_wc_adm_access_t *adm_access,
+ svn_boolean_t recurse,
+ svn_revnum_t new_revnum,
+ const char *rev_date,
+ const char *rev_author,
+ const apr_array_header_t *wcprop_changes,
+ svn_boolean_t remove_lock,
+ svn_boolean_t remove_changelist,
+ const unsigned char *digest,
+ apr_pool_t *pool)
+{
+ svn_wc__db_t *db = svn_wc__adm_get_db(adm_access);
+ const char *local_abspath;
+ const svn_checksum_t *checksum;
+ apr_time_t new_date;
+ apr_hash_t *wcprop_changes_hash;
+
+ if (rev_date)
+ SVN_ERR(svn_time_from_cstring(&new_date, rev_date, pool));
+ else
+ new_date = 0;
+
+ if (digest)
+ checksum = svn_checksum__from_digest(digest, svn_checksum_md5, pool);
+ else
+ checksum = NULL;
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, pool));
+
+ wcprop_changes_hash = svn_wc__prop_array_to_hash(wcprop_changes, pool);
+ SVN_ERR(svn_wc__process_committed_internal(db, local_abspath, recurse,
+ new_revnum, new_date, rev_author,
+ wcprop_changes_hash,
+ !remove_lock, !remove_changelist,
+ checksum, NULL, pool));
+
+ /* Run the log file(s) we just created. */
+ return svn_error_return(svn_wc__wq_run(db, local_abspath, NULL, NULL, pool));
+}
+
+
+svn_error_t *
svn_wc_process_committed3(const char *path,
svn_wc_adm_access_t *adm_access,
svn_boolean_t recurse,
Modified: subversion/trunk/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc.h?rev=921503&r1=921502&r2=921503&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc.h Wed Mar 10 18:28:10 2010
@@ -191,6 +191,44 @@ apr_pool_t *
svn_wc__get_committed_queue_pool(struct svn_wc_committed_queue_t *queue);
+/** Internal helper for svn_wc_process_committed_queue2().
+ *
+ * Bump an item from @a queue (the one associated with @a
+ * local_abspath) to @a new_revnum after a commit succeeds, recursing
+ * if @a recurse is set.
+ *
+ * @a new_date is the (server-side) date of the new revision, or 0.
+ *
+ * @a rev_author is the (server-side) author of the new
+ * revision; it may be @c NULL.
+ *
+ * @a new_dav_cache is a hash of dav property changes to be made to
+ * the @a local_abspath.
+ *
+ * If @a no_unlock is set, don't release any user locks on @a
+ * local_abspath; otherwise release them as part of this processing.
+ *
+ * If @keep_changelist is set, don't remove any changeset assignments
+ * from @a local_abspath; otherwise, clear it of such assignments.
+ *
+ * If @a local_abspath is a file and @a checksum is non-NULL, use @a checksum
+ * as the checksum for the new text base. Otherwise, calculate the checksum
+ * if needed.
+ */
+svn_error_t *
+svn_wc__process_committed_internal(svn_wc__db_t *db,
+ const char *local_abspath,
+ svn_boolean_t recurse,
+ svn_revnum_t new_revnum,
+ apr_time_t new_date,
+ const char *rev_author,
+ apr_hash_t *new_dav_cache,
+ svn_boolean_t no_unlock,
+ svn_boolean_t keep_changelist,
+ const svn_checksum_t *checksum,
+ const svn_wc_committed_queue_t *queue,
+ apr_pool_t *scratch_pool);
+
/*** Update traversals. ***/
@@ -273,6 +311,27 @@ struct svn_wc_traversal_info_t
/* Ensure that DIR exists. */
svn_error_t *svn_wc__ensure_directory(const char *path, apr_pool_t *pool);
+
+/* Return a hash keyed by 'const char *' property names and with
+ 'svn_string_t *' values built from PROPS (which is an array of
+ pointers to svn_prop_t's) or to NULL if PROPS is NULL or empty.
+ PROPS items which lack a value will be ignored. If PROPS contains
+ multiple properties with the same name, each successive such item
+ reached in a walk from the beginning to the end of the array will
+ overwrite the previous in the returned hash.
+
+ NOTE: While the returned hash will be allocated in RESULT_POOL, the
+ items it holds will share storage with those in PROPS.
+
+ ### This is rather the reverse of svn_prop_hash_to_array(), except
+ ### that function's arrays contains svn_prop_t's, whereas this
+ ### one's contains *pointers* to svn_prop_t's. So much for
+ ### consistency. */
+apr_hash_t *
+svn_wc__prop_array_to_hash(const apr_array_header_t *wcprop_changes,
+ apr_pool_t *result_pool);
+
+
/* Baton for svn_wc__compat_call_notify_func below. */
typedef struct svn_wc__compat_notify_baton_t {
/* Wrapped func/baton. */
Re: svn commit: r921503 - in
/subversion/trunk/subversion/libsvn_wc: adm_ops.c deprecated.c wc.h
Posted by Julian Foad <ju...@wandisco.com>.
On Wed, 2010-03-17, C. Michael Pilato wrote:
> Julian Foad wrote:
> > On Thu, 2010-03-11, I (Julian Foad) wrote:
> >> Excellent, too. Just one nit: it looks like you intended to rename the
> >> argument "wcprop_changes" to "props".
> >
> > Renamed in r924229.
>
> Thanks. For the record, I hadn't ignored your review -- I just had left the
> changes sitting uncommitted in my working copy yesterday when Distraction
> #1587 came to visit or something.
No problem. I just came back to it because I'm trying to understand the
code that uses it.
- Julian
Re: svn commit: r921503 - in
/subversion/trunk/subversion/libsvn_wc: adm_ops.c deprecated.c wc.h
Posted by Julian Foad <ju...@wandisco.com>.
On Wed, 2010-03-17, C. Michael Pilato wrote:
> Julian Foad wrote:
> > On Thu, 2010-03-11, I (Julian Foad) wrote:
> >> Excellent, too. Just one nit: it looks like you intended to rename the
> >> argument "wcprop_changes" to "props".
> >
> > Renamed in r924229.
>
> Thanks. For the record, I hadn't ignored your review -- I just had left the
> changes sitting uncommitted in my working copy yesterday when Distraction
> #1587 came to visit or something.
No problem. I just came back to it because I'm trying to understand the
code that uses it.
- Julian
Re: svn commit: r921503 - in /subversion/trunk/subversion/libsvn_wc:
adm_ops.c deprecated.c wc.h
Posted by "C. Michael Pilato" <cm...@collab.net>.
Julian Foad wrote:
> On Thu, 2010-03-11, I (Julian Foad) wrote:
>> Excellent, too. Just one nit: it looks like you intended to rename the
>> argument "wcprop_changes" to "props".
>
> Renamed in r924229.
Thanks. For the record, I hadn't ignored your review -- I just had left the
changes sitting uncommitted in my working copy yesterday when Distraction
#1587 came to visit or something.
--
C. Michael Pilato <cm...@collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Re: svn commit: r921503 - in /subversion/trunk/subversion/libsvn_wc:
adm_ops.c deprecated.c wc.h
Posted by "C. Michael Pilato" <cm...@collab.net>.
Julian Foad wrote:
> On Thu, 2010-03-11, I (Julian Foad) wrote:
>> Excellent, too. Just one nit: it looks like you intended to rename the
>> argument "wcprop_changes" to "props".
>
> Renamed in r924229.
Thanks. For the record, I hadn't ignored your review -- I just had left the
changes sitting uncommitted in my working copy yesterday when Distraction
#1587 came to visit or something.
--
C. Michael Pilato <cm...@collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Re: svn commit: r921503 - in
/subversion/trunk/subversion/libsvn_wc: adm_ops.c deprecated.c wc.h
Posted by Julian Foad <ju...@wandisco.com>.
On Thu, 2010-03-11, I (Julian Foad) wrote:
> Excellent, too. Just one nit: it looks like you intended to rename the
> argument "wcprop_changes" to "props".
Renamed in r924229.
- Julian
Re: svn commit: r921503 - in
/subversion/trunk/subversion/libsvn_wc: adm_ops.c deprecated.c wc.h
Posted by Julian Foad <ju...@wandisco.com>.
On Thu, 2010-03-11, I (Julian Foad) wrote:
> Excellent, too. Just one nit: it looks like you intended to rename the
> argument "wcprop_changes" to "props".
Renamed in r924229.
- Julian
Re: svn commit: r921503 - in
/subversion/trunk/subversion/libsvn_wc: adm_ops.c deprecated.c wc.h
Posted by Julian Foad <ju...@wandisco.com>.
On Wed, 2010-03-10, cmpilato@apache.org wrote:
> Author: cmpilato
> Date: Wed Mar 10 18:28:10 2010
> New Revision: 921503
>
> URL: http://svn.apache.org/viewvc?rev=921503&view=rev
> Log:
> Continue doing what it takes to get deprecated stuff into deprecated.c.
>
> * subversion/libsvn_wc/wc.h
> (svn_wc__process_committed_internal): New prototype (and real
> docstring!)
Hoorrah! Thank you, Mike.
> for what was adm_ops.c:process_committed_internal().
> (svn_wc__prop_array_to_hash): New prototype (for the function that
> was adm_ops.c:convert_to_hash()).
Excellent, too. Just one nit: it looks like you intended to rename the
argument "wcprop_changes" to "props".
- Julian
[...]
> -/* */
> -static apr_hash_t *
> -convert_to_hash(const apr_array_header_t *wcprop_changes,
> - apr_pool_t *result_pool)
> +apr_hash_t *
> +svn_wc__prop_array_to_hash(const apr_array_header_t *wcprop_changes,
> + apr_pool_t *result_pool)
[...]
> +/* Return a hash keyed by 'const char *' property names and with
> + 'svn_string_t *' values built from PROPS (which is an array of
> + pointers to svn_prop_t's) or to NULL if PROPS is NULL or empty.
> + PROPS items which lack a value will be ignored. If PROPS contains
> + multiple properties with the same name, each successive such item
> + reached in a walk from the beginning to the end of the array will
> + overwrite the previous in the returned hash.
> +
> + NOTE: While the returned hash will be allocated in RESULT_POOL, the
> + items it holds will share storage with those in PROPS.
> +
> + ### This is rather the reverse of svn_prop_hash_to_array(), except
> + ### that function's arrays contains svn_prop_t's, whereas this
> + ### one's contains *pointers* to svn_prop_t's. So much for
> + ### consistency. */
> +apr_hash_t *
> +svn_wc__prop_array_to_hash(const apr_array_header_t *wcprop_changes,
> + apr_pool_t *result_pool);
> +
> +
> /* Baton for svn_wc__compat_call_notify_func below. */
> typedef struct svn_wc__compat_notify_baton_t {
> /* Wrapped func/baton. */
>
>
Re: svn commit: r921503 - in
/subversion/trunk/subversion/libsvn_wc: adm_ops.c deprecated.c wc.h
Posted by Julian Foad <ju...@wandisco.com>.
On Wed, 2010-03-10, cmpilato@apache.org wrote:
> Author: cmpilato
> Date: Wed Mar 10 18:28:10 2010
> New Revision: 921503
>
> URL: http://svn.apache.org/viewvc?rev=921503&view=rev
> Log:
> Continue doing what it takes to get deprecated stuff into deprecated.c.
>
> * subversion/libsvn_wc/wc.h
> (svn_wc__process_committed_internal): New prototype (and real
> docstring!)
Hoorrah! Thank you, Mike.
> for what was adm_ops.c:process_committed_internal().
> (svn_wc__prop_array_to_hash): New prototype (for the function that
> was adm_ops.c:convert_to_hash()).
Excellent, too. Just one nit: it looks like you intended to rename the
argument "wcprop_changes" to "props".
- Julian
[...]
> -/* */
> -static apr_hash_t *
> -convert_to_hash(const apr_array_header_t *wcprop_changes,
> - apr_pool_t *result_pool)
> +apr_hash_t *
> +svn_wc__prop_array_to_hash(const apr_array_header_t *wcprop_changes,
> + apr_pool_t *result_pool)
[...]
> +/* Return a hash keyed by 'const char *' property names and with
> + 'svn_string_t *' values built from PROPS (which is an array of
> + pointers to svn_prop_t's) or to NULL if PROPS is NULL or empty.
> + PROPS items which lack a value will be ignored. If PROPS contains
> + multiple properties with the same name, each successive such item
> + reached in a walk from the beginning to the end of the array will
> + overwrite the previous in the returned hash.
> +
> + NOTE: While the returned hash will be allocated in RESULT_POOL, the
> + items it holds will share storage with those in PROPS.
> +
> + ### This is rather the reverse of svn_prop_hash_to_array(), except
> + ### that function's arrays contains svn_prop_t's, whereas this
> + ### one's contains *pointers* to svn_prop_t's. So much for
> + ### consistency. */
> +apr_hash_t *
> +svn_wc__prop_array_to_hash(const apr_array_header_t *wcprop_changes,
> + apr_pool_t *result_pool);
> +
> +
> /* Baton for svn_wc__compat_call_notify_func below. */
> typedef struct svn_wc__compat_notify_baton_t {
> /* Wrapped func/baton. */
>
>
Re: svn commit: r921503 - in
/subversion/trunk/subversion/libsvn_wc: adm_ops.c deprecated.c wc.h
Posted by Julian Foad <ju...@wandisco.com>.
On Wed, 2010-03-10, cmpilato@apache.org wrote:
> Author: cmpilato
> Date: Wed Mar 10 18:28:10 2010
> New Revision: 921503
>
> URL: http://svn.apache.org/viewvc?rev=921503&view=rev
> Log:
> Continue doing what it takes to get deprecated stuff into deprecated.c.
>
> * subversion/libsvn_wc/wc.h
> (svn_wc__process_committed_internal): New prototype (and real
> docstring!)
Hoorrah! Thank you, Mike.
> for what was adm_ops.c:process_committed_internal().
> (svn_wc__prop_array_to_hash): New prototype (for the function that
> was adm_ops.c:convert_to_hash()).
Excellent, too. Just one nit: it looks like you intended to rename the
argument "wcprop_changes" to "props".
- Julian
[...]
> -/* */
> -static apr_hash_t *
> -convert_to_hash(const apr_array_header_t *wcprop_changes,
> - apr_pool_t *result_pool)
> +apr_hash_t *
> +svn_wc__prop_array_to_hash(const apr_array_header_t *wcprop_changes,
> + apr_pool_t *result_pool)
[...]
> +/* Return a hash keyed by 'const char *' property names and with
> + 'svn_string_t *' values built from PROPS (which is an array of
> + pointers to svn_prop_t's) or to NULL if PROPS is NULL or empty.
> + PROPS items which lack a value will be ignored. If PROPS contains
> + multiple properties with the same name, each successive such item
> + reached in a walk from the beginning to the end of the array will
> + overwrite the previous in the returned hash.
> +
> + NOTE: While the returned hash will be allocated in RESULT_POOL, the
> + items it holds will share storage with those in PROPS.
> +
> + ### This is rather the reverse of svn_prop_hash_to_array(), except
> + ### that function's arrays contains svn_prop_t's, whereas this
> + ### one's contains *pointers* to svn_prop_t's. So much for
> + ### consistency. */
> +apr_hash_t *
> +svn_wc__prop_array_to_hash(const apr_array_header_t *wcprop_changes,
> + apr_pool_t *result_pool);
> +
> +
> /* Baton for svn_wc__compat_call_notify_func below. */
> typedef struct svn_wc__compat_notify_baton_t {
> /* Wrapped func/baton. */
>
>