You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Paul Burba <pt...@gmail.com> on 2012/11/02 22:29:42 UTC

Re: svn commit: r1198765 - in /subversion/trunk/subversion: include/ include/private/ libsvn_client/ libsvn_wc/ svn/ tests/cmdline/

On Mon, Nov 7, 2011 at 10:04 AM,  <ne...@apache.org> wrote:
> Author: neels
> Date: Mon Nov  7 15:03:59 2011
> New Revision: 1198765
>
> URL: http://svn.apache.org/viewvc?rev=1198765&view=rev
> Log:
> Introduce the commit argument --include-externals.
>
> Most prominent changes:
> - File externals are no longer committed by default.
> - When option --include-externals is passed to 'svn commit', *all* externals
>   reached by recursion are included in the commit (dir & file alike).
> - Dir externals nested "behind" unversioned dirs or "foreign" WCs are
>   now reached by recursion.
>
> Previous default was to include all file externals, not dirs. On the API
> level, separate dir/file arguments allow for this previous behavior, mainly
> for keeping svn_client_commit5()'s behavior unchanged.
>
> See also http://svn.haxx.se/dev/archive-2011-08/0620.shtml
>
> ### The commit API can't handle file externals inside unversioned dirs
> properly yet. Additional SQL currently deliberately excludes them (see
> STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW).
>
> * subversion/include/private/svn_wc_private.h
>   (svn_wc__committable_external_info_t): New struct for:
>   (svn_wc__committable_externals_below): New function.
>
> * subversion/include/svn_client.h,
>   (svn_client_commit6):
>     New function, adding INCLUDE_FILE_EXTERNALS and INCLUDE_DIR_EXTERNALS
>     arguments over svn_client_commit5().
>
> * subversion/libsvn_client/commit.c
>   (append_externals_as_explicit_targets): New static function.
>   (svn_client_commit6): New function, see svn_client.h ^.
>   (svn_client_commit5):
>     Call svn_client_commit6() with INCLUDE_FILE_EXTERNALS = TRUE and
>     INCLUDE_DIR_EXTERNALS = FALSE.
>
> * subversion/libsvn_client/commit_util.c
>   (harvest_committables):
>     New argument IS_EXPLICIT_TARGET; pass as FALSE upon recursion. Skip file
>     externals that are not explicit targets, so this function now skips all
>     externals during recursion (see docstring).
>   (svn_client__harvest_committables):
>     Pass IS_EXPLICIT_TARGET as TRUE: initial harvest_committables() call.
>   (harvest_copy_committables):
>     Pass IS_EXPLICIT_TARGET as TRUE, but has no effect since, inside
>     harvest_committables(), COPY_MODE will be TRUE and all file externals will
>     be excluded anyway.
>
> * subversion/libsvn_wc/externals.c
>   (is_external_rolled_out): New static function.
>   (svn_wc__committable_externals_below): New function, see svn_wc_private.h ^.
>
> * subversion/libsvn_wc/wc_db.h,
> * subversion/libsvn_wc/wc_db.c
>   (svn_wc__db_committable_externals_below):
>     New function for STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW.
>
> * subversion/libsvn_wc/wc-queries.sql
>   (STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW): New SQL.
>
> * subversion/svn/cl.h
>   (svn_cl__opt_state_t): Add INCLUDE_EXTERNALS for --include-externals.
>
> * subversion/svn/commit-cmd.c
>   (svn_cl__commit): Call svn_client_commit6() instead of &5().
>
> * subversion/svn/main.c
>   (svn_cl__longopt_t, svn_cl__options, svn_cl__cmd_table, main):
>     Add OPT_INCLUDE_EXTERNALS, enable --include-externals for 'commit'.
>
> * subversion/tests/cmdline/externals_tests.py
>   (include_externals): New test, PASS.
>   (include_immediate_dir_externals): New test, XFAIL.

Hi Neels,

I'm churning through all our XFailing tests to determine what are true
1.8 blockers.  This test had no associated issue, so I created issue
#4252 to track it.  I set the target milestone to 1.8-consider since
1.7 didn't work either.  Does that sound reasonable?  Also, did you
have any plans to follow-up on this?

--
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

Re: svn commit: r1198765 - in /subversion/trunk/subversion: include/ include/private/ libsvn_client/ libsvn_wc/ svn/ tests/cmdline/

Posted by Neels J Hofmeyr <ne...@elego.de>.
Hi Paul!

The memory slowly comes back from the distance...

I've just tweaked the issue summary, marked the test with the issue number
#4252 and added a comment to the issue.

AFAICT the only wrong is that currently --depth=immediates leaves out the
property changes on external dirs. I humbly assume that that's not really
pressing. The fix should be easy, but a bit cumbersome.

So: no, I'm not planning to follow up unless there's a nudge from someone
who is really annoyed by this.

Thanks for clarifying!
~Neels

On 2012-11-02 22:29, Paul Burba wrote:
> On Mon, Nov 7, 2011 at 10:04 AM,  <ne...@apache.org> wrote:
>> Author: neels
>> Date: Mon Nov  7 15:03:59 2011
>> New Revision: 1198765
>>
>> URL: http://svn.apache.org/viewvc?rev=1198765&view=rev
>> Log:
>> Introduce the commit argument --include-externals.
>>
>> Most prominent changes:
>> - File externals are no longer committed by default.
>> - When option --include-externals is passed to 'svn commit', *all* externals
>>   reached by recursion are included in the commit (dir & file alike).
>> - Dir externals nested "behind" unversioned dirs or "foreign" WCs are
>>   now reached by recursion.
>>
>> Previous default was to include all file externals, not dirs. On the API
>> level, separate dir/file arguments allow for this previous behavior, mainly
>> for keeping svn_client_commit5()'s behavior unchanged.
>>
>> See also http://svn.haxx.se/dev/archive-2011-08/0620.shtml
>>
>> ### The commit API can't handle file externals inside unversioned dirs
>> properly yet. Additional SQL currently deliberately excludes them (see
>> STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW).
>>
>> * subversion/include/private/svn_wc_private.h
>>   (svn_wc__committable_external_info_t): New struct for:
>>   (svn_wc__committable_externals_below): New function.
>>
>> * subversion/include/svn_client.h,
>>   (svn_client_commit6):
>>     New function, adding INCLUDE_FILE_EXTERNALS and INCLUDE_DIR_EXTERNALS
>>     arguments over svn_client_commit5().
>>
>> * subversion/libsvn_client/commit.c
>>   (append_externals_as_explicit_targets): New static function.
>>   (svn_client_commit6): New function, see svn_client.h ^.
>>   (svn_client_commit5):
>>     Call svn_client_commit6() with INCLUDE_FILE_EXTERNALS = TRUE and
>>     INCLUDE_DIR_EXTERNALS = FALSE.
>>
>> * subversion/libsvn_client/commit_util.c
>>   (harvest_committables):
>>     New argument IS_EXPLICIT_TARGET; pass as FALSE upon recursion. Skip file
>>     externals that are not explicit targets, so this function now skips all
>>     externals during recursion (see docstring).
>>   (svn_client__harvest_committables):
>>     Pass IS_EXPLICIT_TARGET as TRUE: initial harvest_committables() call.
>>   (harvest_copy_committables):
>>     Pass IS_EXPLICIT_TARGET as TRUE, but has no effect since, inside
>>     harvest_committables(), COPY_MODE will be TRUE and all file externals will
>>     be excluded anyway.
>>
>> * subversion/libsvn_wc/externals.c
>>   (is_external_rolled_out): New static function.
>>   (svn_wc__committable_externals_below): New function, see svn_wc_private.h ^.
>>
>> * subversion/libsvn_wc/wc_db.h,
>> * subversion/libsvn_wc/wc_db.c
>>   (svn_wc__db_committable_externals_below):
>>     New function for STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW.
>>
>> * subversion/libsvn_wc/wc-queries.sql
>>   (STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW): New SQL.
>>
>> * subversion/svn/cl.h
>>   (svn_cl__opt_state_t): Add INCLUDE_EXTERNALS for --include-externals.
>>
>> * subversion/svn/commit-cmd.c
>>   (svn_cl__commit): Call svn_client_commit6() instead of &5().
>>
>> * subversion/svn/main.c
>>   (svn_cl__longopt_t, svn_cl__options, svn_cl__cmd_table, main):
>>     Add OPT_INCLUDE_EXTERNALS, enable --include-externals for 'commit'.
>>
>> * subversion/tests/cmdline/externals_tests.py
>>   (include_externals): New test, PASS.
>>   (include_immediate_dir_externals): New test, XFAIL.
> 
> Hi Neels,
> 
> I'm churning through all our XFailing tests to determine what are true
> 1.8 blockers.  This test had no associated issue, so I created issue
> #4252 to track it.  I set the target milestone to 1.8-consider since
> 1.7 didn't work either.  Does that sound reasonable?  Also, did you
> have any plans to follow-up on this?
> 
> --
> Paul T. Burba
> CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
> Skype: ptburba
>