Return-Path: X-Original-To: apmail-subversion-commits-archive@minotaur.apache.org Delivered-To: apmail-subversion-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0A1AAC990 for ; Wed, 21 Jan 2015 18:57:39 +0000 (UTC) Received: (qmail 2620 invoked by uid 500); 21 Jan 2015 17:00:32 -0000 Delivered-To: apmail-subversion-commits-archive@subversion.apache.org Received: (qmail 2605 invoked by uid 500); 21 Jan 2015 17:00:31 -0000 Mailing-List: contact commits-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@subversion.apache.org Delivered-To: mailing list commits@subversion.apache.org Received: (qmail 2593 invoked by uid 99); 21 Jan 2015 17:00:31 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Jan 2015 17:00:31 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id 0B91CAC0059; Wed, 21 Jan 2015 17:00:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1653600 - in /subversion/trunk/subversion: include/svn_ra.h include/svn_ra_svn.h include/svn_repos.h libsvn_ra_serf/ra_serf.h libsvn_repos/commit.c svnrdump/load_editor.c Date: Wed, 21 Jan 2015 17:00:21 -0000 To: commits@subversion.apache.org From: julianfoad@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20150121170022.0B91CAC0059@hades.apache.org> Author: julianfoad Date: Wed Jan 21 17:00:21 2015 New Revision: 1653600 URL: http://svn.apache.org/r1653600 Log: Document the specific requirements of commit editors to be given a URL rather than a relative path in the copyfrom_path argument of their add_file() and add_directory() methods. * subversion/include/svn_ra.h (svn_ra_get_commit_editor3): Add a comment: requires a URL. * subversion/include/svn_ra_svn.h (svn_ra_svn_get_editor): Add a comment: passes on either kind, verbatim. (svn_ra_svn_drive_editor2): Add a comment: canonicalizes either kind. * subversion/include/svn_repos.h (svn_repos_get_commit_editor5): Add a comment: requires a URL. * subversion/libsvn_ra_serf/ra_serf.h (svn_ra_serf__get_commit_editor): Add a comment: requires a URL. * subversion/libsvn_repos/commit.c (add_file_or_directory): Add a comment: requires a URL. * subversion/svnrdump/load_editor.c (new_node_record): Add a comment: provides a URL. Modified: subversion/trunk/subversion/include/svn_ra.h subversion/trunk/subversion/include/svn_ra_svn.h subversion/trunk/subversion/include/svn_repos.h subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h subversion/trunk/subversion/libsvn_repos/commit.c subversion/trunk/subversion/svnrdump/load_editor.c Modified: subversion/trunk/subversion/include/svn_ra.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_ra.h?rev=1653600&r1=1653599&r2=1653600&view=diff ============================================================================== --- subversion/trunk/subversion/include/svn_ra.h (original) +++ subversion/trunk/subversion/include/svn_ra.h Wed Jan 21 17:00:21 2015 @@ -1011,6 +1011,10 @@ svn_ra_rev_prop(svn_ra_session_t *sessio * Use @a pool for memory allocation. * * @since New in 1.5. + * + * @note Like most commit editors, the returned editor requires that the + * @c copyfrom_path parameter passed to its @c add_file and @c add_directory + * methods is a URL, not a relative path. */ svn_error_t * svn_ra_get_commit_editor3(svn_ra_session_t *session, Modified: subversion/trunk/subversion/include/svn_ra_svn.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_ra_svn.h?rev=1653600&r1=1653599&r2=1653600&view=diff ============================================================================== --- subversion/trunk/subversion/include/svn_ra_svn.h (original) +++ subversion/trunk/subversion/include/svn_ra_svn.h Wed Jan 21 17:00:21 2015 @@ -287,6 +287,12 @@ svn_ra_svn_conn_remote_host(svn_ra_svn_c * * Upon successful completion of the edit, the editor will invoke @a callback * with @a callback_baton as an argument. + * + * @note The @c copyfrom_path parameter passed to the @c add_file and + * @c add_directory methods of the returned editor may be either a URL or a + * relative path, and is transferred verbatim to the receiving end of the + * connection. See svn_ra_svn_drive_editor2() for information on the + * receiving end of the connection. */ void svn_ra_svn_get_editor(const svn_delta_editor_t **editor, @@ -302,6 +308,13 @@ svn_ra_svn_get_editor(const svn_delta_ed * if @a for_replay is TRUE. * * @since New in 1.4. + * + * @note The @c copyfrom_path parameter passed to the @c add_file and + * @c add_directory methods of the receiving editor will be canonicalized + * either as a URL or as a relative path (starting with a slash) according + * to which kind was sent by the driving end of the connection. See + * svn_ra_svn_get_editor() for information on the driving end of the + * connection. */ svn_error_t * svn_ra_svn_drive_editor2(svn_ra_svn_conn_t *conn, Modified: subversion/trunk/subversion/include/svn_repos.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_repos.h?rev=1653600&r1=1653599&r2=1653600&view=diff ============================================================================== --- subversion/trunk/subversion/include/svn_repos.h (original) +++ subversion/trunk/subversion/include/svn_repos.h Wed Jan 21 17:00:21 2015 @@ -1539,6 +1539,10 @@ svn_repos_replay(svn_fs_root_t *root, * * @note Yes, @a repos_url is a decoded URL. We realize * that's sorta wonky. Sorry about that. + * + * @note Like most commit editors, the returned editor requires that the + * @c copyfrom_path parameter passed to its @c add_file and @c add_directory + * methods is a URL, not a relative path. */ svn_error_t * svn_repos_get_commit_editor5(const svn_delta_editor_t **editor, Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=1653600&r1=1653599&r2=1653600&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original) +++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Wed Jan 21 17:00:21 2015 @@ -1461,7 +1461,12 @@ svn_ra_serf__get_dated_revision(svn_ra_s apr_time_t tm, apr_pool_t *pool); -/* Implements svn_ra__vtable_t.get_commit_editor(). */ +/* Implements svn_ra__vtable_t.get_commit_editor(). + * + * Note: Like other commit editors, the returned editor requires that the + * @c copyfrom_path parameter passed to its @c add_file and @c add_directory + * methods is a URL, not a relative path. + */ svn_error_t * svn_ra_serf__get_commit_editor(svn_ra_session_t *session, const svn_delta_editor_t **editor, Modified: subversion/trunk/subversion/libsvn_repos/commit.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/commit.c?rev=1653600&r1=1653599&r2=1653600&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_repos/commit.c (original) +++ subversion/trunk/subversion/libsvn_repos/commit.c Wed Jan 21 17:00:21 2015 @@ -262,7 +262,9 @@ make_dir_baton(struct edit_baton *edit_b /* This function is the shared guts of add_file() and add_directory(), which see for the meanings of the parameters. The only extra parameter here is IS_DIR, which is TRUE when adding a directory, - and FALSE when adding a file. */ + and FALSE when adding a file. + + COPY_PATH must be a full URL, not a relative path. */ static svn_error_t * add_file_or_directory(const char *path, void *parent_baton, Modified: subversion/trunk/subversion/svnrdump/load_editor.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/load_editor.c?rev=1653600&r1=1653599&r2=1653600&view=diff ============================================================================== --- subversion/trunk/subversion/svnrdump/load_editor.c (original) +++ subversion/trunk/subversion/svnrdump/load_editor.c Wed Jan 21 17:00:21 2015 @@ -604,6 +604,7 @@ new_node_record(void **node_baton, if (rb->pb->parent_dir) nb->copyfrom_path = svn_relpath_join(rb->pb->parent_dir, nb->copyfrom_path, rb->pool); + /* Convert to a URL, as the commit editor requires. */ nb->copyfrom_path = svn_path_url_add_component2(rb->pb->root_url, nb->copyfrom_path, rb->pool);