This fixes all but one of translation tests (#1), which is due to a
timing issue of when the magic translation properties are modified.
Some more complicated rejiggering is needed to fix that. Might take up
to a day.
Cheers,
-g
On Fri, Oct 9, 2009 at 21:48, Greg Stein <gstein_at_gmail.com> wrote:
> Author: gstein
> Date: Fri Oct 9 18:48:07 2009
> New Revision: 39916
>
> Log:
> Introduce an internal version of node_get_url() so that we can (properly)
> fetch a node's URL or it's implied post-commit URL.
>
> * subversion/libsvn_wc/wc.h:
> (svn_wc__internal_node_get_url): new declaration
>
> * subversion/libsvn_wc/node.c:
> (svn_wc__node_get_url): renamed into ...
> (svn_wc__internal_node_get_url): ... this. some arg lists were reflowed
> to follow typical pairing precedents. a couple indentation fixes
> (svn_wc__node_get_url): reintroduced as a wrapper for above.
>
> * subversion/libsvn_wc/translate.c:
> (svn_wc__get_keywords): remove the incorrect use of scan_addition() and
> the incorrect join of repos_relpath (it needs to be quoted). replace
> all this with a call to svn_wc__internal_node_get_url() which uses the
> correct process to find and join the information.
>
> Modified:
> trunk/subversion/libsvn_wc/node.c
> trunk/subversion/libsvn_wc/translate.c
> trunk/subversion/libsvn_wc/wc.h
>
> Modified: trunk/subversion/libsvn_wc/node.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/node.c?pathrev=39916&r1=39915&r2=39916
> ==============================================================================
> --- trunk/subversion/libsvn_wc/node.c Fri Oct 9 17:33:03 2009 (r39915)
> +++ trunk/subversion/libsvn_wc/node.c Fri Oct 9 18:48:07 2009 (r39916)
> @@ -239,11 +239,11 @@ svn_wc__node_get_changelist(const char *
> }
>
> svn_error_t *
> -svn_wc__node_get_url(const char **url,
> - svn_wc_context_t *wc_ctx,
> - const char *local_abspath,
> - apr_pool_t *result_pool,
> - apr_pool_t *scratch_pool)
> +svn_wc__internal_node_get_url(const char **url,
> + svn_wc__db_t *db,
> + const char *local_abspath,
> + apr_pool_t *result_pool,
> + apr_pool_t *scratch_pool)
> {
> svn_wc__db_status_t status;
> const char *repos_relpath;
> @@ -254,26 +254,26 @@ svn_wc__node_get_url(const char **url,
> NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
> NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
> NULL, NULL, NULL,
> - wc_ctx->db, local_abspath, scratch_pool,
> - scratch_pool));
> -
> + db, local_abspath,
> + scratch_pool, scratch_pool));
> if (repos_relpath == NULL)
> {
> if (status == svn_wc__db_status_normal
> - || status == svn_wc__db_status_incomplete)
> + || status == svn_wc__db_status_incomplete)
> {
> SVN_ERR(svn_wc__db_scan_base_repos(&repos_relpath, &repos_root_url,
> - NULL, wc_ctx->db, local_abspath,
> + NULL,
> + db, local_abspath,
> scratch_pool, scratch_pool));
> }
> else if (status == svn_wc__db_status_added
> - || status == svn_wc__db_status_obstructed_add)
> + || status == svn_wc__db_status_obstructed_add)
> {
> SVN_ERR(svn_wc__db_scan_addition(NULL, NULL, &repos_relpath,
> &repos_root_url, NULL, NULL, NULL,
> - NULL, NULL, wc_ctx->db,
> - local_abspath, scratch_pool,
> - scratch_pool));
> + NULL, NULL,
> + db, local_abspath,
> + scratch_pool, scratch_pool));
> }
> else
> {
> @@ -289,6 +289,20 @@ svn_wc__node_get_url(const char **url,
> return SVN_NO_ERROR;
> }
>
> +
> +svn_error_t *
> +svn_wc__node_get_url(const char **url,
> + svn_wc_context_t *wc_ctx,
> + const char *local_abspath,
> + apr_pool_t *result_pool,
> + apr_pool_t *scratch_pool)
> +{
> + return svn_error_return(svn_wc__internal_node_get_url(
> + url, wc_ctx->db, local_abspath,
> + result_pool, scratch_pool));
> +}
> +
> +
> /* A recursive node-walker, helper for svn_wc__node_walk_children(). */
> static svn_error_t *
> walker_helper(svn_wc__db_t *db,
>
> Modified: trunk/subversion/libsvn_wc/translate.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/translate.c?pathrev=39916&r1=39915&r2=39916
> ==============================================================================
> --- trunk/subversion/libsvn_wc/translate.c Fri Oct 9 17:33:03 2009 (r39915)
> +++ trunk/subversion/libsvn_wc/translate.c Fri Oct 9 18:48:07 2009 (r39916)
> @@ -318,8 +318,6 @@ svn_wc__get_keywords(apr_hash_t **keywor
> apr_pool_t *scratch_pool)
> {
> const char *list;
> - const char *repos_relpath;
> - const char *repos_root_url;
> svn_revnum_t changed_rev;
> apr_time_t changed_date;
> const char *changed_author;
> @@ -349,22 +347,14 @@ svn_wc__get_keywords(apr_hash_t **keywor
> else
> list = force_list;
>
> - SVN_ERR(svn_wc__db_read_info(NULL, NULL, NULL, &repos_relpath,
> - &repos_root_url, NULL, &changed_rev,
> + SVN_ERR(svn_wc__db_read_info(NULL, NULL, NULL, NULL,
> + NULL, NULL, &changed_rev,
> &changed_date, &changed_author, NULL, NULL,
> NULL, NULL, NULL, NULL, NULL, NULL,
> NULL, NULL, NULL, NULL, NULL, NULL, NULL,
> db, local_abspath, scratch_pool, scratch_pool));
> -
> - if (repos_root_url == NULL)
> - {
> - SVN_ERR(svn_wc__db_scan_addition(NULL, NULL, &repos_relpath,
> - &repos_root_url,
> - NULL, NULL, NULL, NULL, NULL,
> - db, local_abspath, scratch_pool,
> - scratch_pool));
> - }
> - url = svn_uri_join(repos_root_url, repos_relpath, scratch_pool);
> + SVN_ERR(svn_wc__internal_node_get_url(&url, db, local_abspath,
> + scratch_pool, scratch_pool));
>
> SVN_ERR(svn_subst_build_keywords2(keywords,
> list,
>
> Modified: trunk/subversion/libsvn_wc/wc.h
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/wc.h?pathrev=39916&r1=39915&r2=39916
> ==============================================================================
> --- trunk/subversion/libsvn_wc/wc.h Fri Oct 9 17:33:03 2009 (r39915)
> +++ trunk/subversion/libsvn_wc/wc.h Fri Oct 9 18:48:07 2009 (r39916)
> @@ -523,6 +523,14 @@ svn_wc__internal_is_replaced(svn_boolean
> apr_pool_t *scratch_pool);
>
>
> +svn_error_t *
> +svn_wc__internal_node_get_url(const char **url,
> + svn_wc__db_t *db,
> + const char *local_abspath,
> + apr_pool_t *result_pool,
> + apr_pool_t *scratch_pool);
> +
> +
> /* Upgrade the wc sqlite database given in SDB for the wc located at
> WCROOT_ABSPATH. It's current/starting format is given by START_FORMAT.
> After the upgrade is complete (to as far as the automatic upgrade will
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=495&dsMessageId=2405750
>
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2405753
Received on 2009-10-10 04:06:08 CEST