You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Blair Zajac <bl...@orcaware.com> on 2012/04/23 14:00:11 UTC

Re: svn commit: r1329083 - in /subversion/trunk/subversion: include/svn_fs.h libsvn_fs/editor.c

On Apr 23, 2012, at 2:45 AM, gstein@apache.org wrote:

> Author: gstein
> Date: Mon Apr 23 06:45:46 2012
> New Revision: 1329083
>
> URL: http://svn.apache.org/viewvc?rev=1329083&view=rev
> Log:
> Add a flag that we'll need. mod_dav_svn wants to keep the txn alive,
> and will manually commit it. libsvn_repos never keeps a txn alive
> beyond the editor drive. This new flag enables the two behaviors.
>
> * subversion/include/svn_fs.h:
> (SVN_FS_TXN_NO_AUTOCOMMIT): new flag

How about renaming this to SVN_FS_TXN_EDITOR_NO_AUTOCOMMIT to make it  
clear in the name that it's specific to an editor and not to txn's as  
a whole.

> (make_editor): set the new flag, to be used by complete_cb later.
>
> Modified:
>   subversion/trunk/subversion/include/svn_fs.h
>   subversion/trunk/subversion/libsvn_fs/editor.c
>
> Modified: subversion/trunk/subversion/include/svn_fs.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_fs.h?rev=1329083&r1=1329082&r2=1329083&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- subversion/trunk/subversion/include/svn_fs.h (original)
> +++ subversion/trunk/subversion/include/svn_fs.h Mon Apr 23 06:45:46  
> 2012
> @@ -808,6 +808,11 @@ typedef struct svn_fs_txn_t svn_fs_txn_t
> * if a caller tries to edit a locked item without having rights to  
> the lock.
> */
> #define SVN_FS_TXN_CHECK_LOCKS                   0x00002
> +
> +/** Do not auto-commit the txn when its associated editor is marked
> + * as completed.
> + */
> +#define SVN_FS_TXN_NO_AUTOCOMMIT                 0x00004
> /** @} */

The new #define doesn't belong in this block of defines as they are  
for svn_fs_begin_txn2():

/** @defgroup svn_fs_begin_txn2_flags Bitmask flags for  
svn_fs_begin_txn2()
* @since New in 1.2.
* @{ */

Blair


Re: svn commit: r1329083 - in /subversion/trunk/subversion: include/svn_fs.h libsvn_fs/editor.c

Posted by Greg Stein <gs...@gmail.com>.
On Mon, Apr 23, 2012 at 17:58, Blair Zajac <bl...@orcaware.com> wrote:
>
> On Apr 23, 2012, at 1:01 PM, Greg Stein wrote:
>
>>
>> On Apr 23, 2012 8:00 AM, "Blair Zajac" <bl...@orcaware.com> wrote:
>> >
>> >
>> > On Apr 23, 2012, at 2:45 AM, gstein@apache.org wrote:
>> >
>> >> Author: gstein
>> >> Date: Mon Apr 23 06:45:46 2012
>> >> New Revision: 1329083
>> >>
>> >> URL: http://svn.apache.org/viewvc?rev=1329083&view=rev
>> >> Log:
>> >> Add a flag that we'll need. mod_dav_svn wants to keep the txn alive,
>> >> and will manually commit it. libsvn_repos never keeps a txn alive
>> >> beyond the editor drive. This new flag enables the two behaviors.
>> >>
>> >> * subversion/include/svn_fs.h:
>> >> (SVN_FS_TXN_NO_AUTOCOMMIT): new flag
>> >
>> >
>> > How about renaming this to SVN_FS_TXN_EDITOR_NO_AUTOCOMMIT to make it
>> > clear in the name that it's specific to an editor and not to txn's as a
>> > whole.
>> >
>> >
>> >> (make_editor): set the new flag, to be used by complete_cb later.
>> >>
>> >> Modified:
>> >>  subversion/trunk/subversion/include/svn_fs.h
>> >>  subversion/trunk/subversion/libsvn_fs/editor.c
>> >>
>> >> Modified: subversion/trunk/subversion/include/svn_fs.h
>> >> URL:
>> >> http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_fs.h?rev=1329083&r1=1329082&r2=1329083&view=diff
>> >>
>> >> ==============================================================================
>> >> --- subversion/trunk/subversion/include/svn_fs.h (original)
>> >> +++ subversion/trunk/subversion/include/svn_fs.h Mon Apr 23 06:45:46
>> >> 2012
>> >> @@ -808,6 +808,11 @@ typedef struct svn_fs_txn_t svn_fs_txn_t
>> >> * if a caller tries to edit a locked item without having rights to the
>> >> lock.
>> >> */
>> >> #define SVN_FS_TXN_CHECK_LOCKS                   0x00002
>> >> +
>> >> +/** Do not auto-commit the txn when its associated editor is marked
>> >> + * as completed.
>> >> + */
>> >> +#define SVN_FS_TXN_NO_AUTOCOMMIT                 0x00004
>> >> /** @} */
>> >
>> >
>> > The new #define doesn't belong in this block of defines as they are for
>> > svn_fs_begin_txn2():
>>
>> But it does... these three flags can be passed as the FLAGS param to
>> svn_fs_editor_create, and are used to control the txn created as part of
>> that.
>>
> It's not controlling the underlying txn object though, just the editor.  I
> could pass SVN_FS_TXN_NO_AUTOCOMMIT to svn_fs_begin_txn2() but it doesn't do
> anything with it, so it's not appropriate.  It can ignore it and never use
> it, but it's not as clear.
>
>> (so I'm also not keen on inserting another word into the symbol)
>>
> I see what you're getting at in saving an argument to svn_fs_editor_create,
> but conceptually it's mixing two distinct sets of flags().
>
> svn_error_t *
> svn_fs_editor_create(svn_editor_t **editor,
>                     const char **txn_name,
>                     svn_fs_t *fs,
>                     svn_revnum_t revision,
>                     apr_uint32_t txn_flags,
>                     apr_uint32_t editor_flags,
>                     ...
>
> or
>
> svn_error_t *
> svn_fs_editor_create(svn_editor_t **editor,
>                     const char **txn_name,
>                     svn_fs_t *fs,
>                     svn_revnum_t revision,
>                     apr_uint32_t txn_flags,
>                     svn_boolean_t no_autocommit,
>                     ...
>
> and hence be named SVN_FS_EDITOR_TXN_NO_AUTOCOMMIT.
>
> Blair
>

Fixed in r1329505.

Re: svn commit: r1329083 - in /subversion/trunk/subversion: include/svn_fs.h libsvn_fs/editor.c

Posted by Blair Zajac <bl...@orcaware.com>.
On Apr 23, 2012, at 1:01 PM, Greg Stein wrote:

>
> On Apr 23, 2012 8:00 AM, "Blair Zajac" <bl...@orcaware.com> wrote:
> >
> >
> > On Apr 23, 2012, at 2:45 AM, gstein@apache.org wrote:
> >
> >> Author: gstein
> >> Date: Mon Apr 23 06:45:46 2012
> >> New Revision: 1329083
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1329083&view=rev
> >> Log:
> >> Add a flag that we'll need. mod_dav_svn wants to keep the txn  
> alive,
> >> and will manually commit it. libsvn_repos never keeps a txn alive
> >> beyond the editor drive. This new flag enables the two behaviors.
> >>
> >> * subversion/include/svn_fs.h:
> >> (SVN_FS_TXN_NO_AUTOCOMMIT): new flag
> >
> >
> > How about renaming this to SVN_FS_TXN_EDITOR_NO_AUTOCOMMIT to make  
> it clear in the name that it's specific to an editor and not to  
> txn's as a whole.
> >
> >
> >> (make_editor): set the new flag, to be used by complete_cb later.
> >>
> >> Modified:
> >>  subversion/trunk/subversion/include/svn_fs.h
> >>  subversion/trunk/subversion/libsvn_fs/editor.c
> >>
> >> Modified: subversion/trunk/subversion/include/svn_fs.h
> >> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_fs.h?rev=1329083&r1=1329082&r2=1329083&view=diff
> >>  
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> >> --- subversion/trunk/subversion/include/svn_fs.h (original)
> >> +++ subversion/trunk/subversion/include/svn_fs.h Mon Apr 23  
> 06:45:46 2012
> >> @@ -808,6 +808,11 @@ typedef struct svn_fs_txn_t svn_fs_txn_t
> >> * if a caller tries to edit a locked item without having rights  
> to the lock.
> >> */
> >> #define SVN_FS_TXN_CHECK_LOCKS                   0x00002
> >> +
> >> +/** Do not auto-commit the txn when its associated editor is  
> marked
> >> + * as completed.
> >> + */
> >> +#define SVN_FS_TXN_NO_AUTOCOMMIT                 0x00004
> >> /** @} */
> >
> >
> > The new #define doesn't belong in this block of defines as they  
> are for svn_fs_begin_txn2():
>
> But it does... these three flags can be passed as the FLAGS param to  
> svn_fs_editor_create, and are used to control the txn created as  
> part of that.
>
It's not controlling the underlying txn object though, just the  
editor.  I could pass SVN_FS_TXN_NO_AUTOCOMMIT to svn_fs_begin_txn2()  
but it doesn't do anything with it, so it's not appropriate.  It can  
ignore it and never use it, but it's not as clear.
> (so I'm also not keen on inserting another word into the symbol)
>
I see what you're getting at in saving an argument to  
svn_fs_editor_create, but conceptually it's mixing two distinct sets  
of flags().

svn_error_t *
svn_fs_editor_create(svn_editor_t **editor,
                      const char **txn_name,
                      svn_fs_t *fs,
                      svn_revnum_t revision,
                      apr_uint32_t txn_flags,
                      apr_uint32_t editor_flags,
                      ...

or

svn_error_t *
svn_fs_editor_create(svn_editor_t **editor,
                      const char **txn_name,
                      svn_fs_t *fs,
                      svn_revnum_t revision,
                      apr_uint32_t txn_flags,
                      svn_boolean_t no_autocommit,
                      ...

and hence be named SVN_FS_EDITOR_TXN_NO_AUTOCOMMIT.

Blair


Re: svn commit: r1329083 - in /subversion/trunk/subversion: include/svn_fs.h libsvn_fs/editor.c

Posted by Greg Stein <gs...@gmail.com>.
On Apr 23, 2012 8:00 AM, "Blair Zajac" <bl...@orcaware.com> wrote:
>
>
> On Apr 23, 2012, at 2:45 AM, gstein@apache.org wrote:
>
>> Author: gstein
>> Date: Mon Apr 23 06:45:46 2012
>> New Revision: 1329083
>>
>> URL: http://svn.apache.org/viewvc?rev=1329083&view=rev
>> Log:
>> Add a flag that we'll need. mod_dav_svn wants to keep the txn alive,
>> and will manually commit it. libsvn_repos never keeps a txn alive
>> beyond the editor drive. This new flag enables the two behaviors.
>>
>> * subversion/include/svn_fs.h:
>> (SVN_FS_TXN_NO_AUTOCOMMIT): new flag
>
>
> How about renaming this to SVN_FS_TXN_EDITOR_NO_AUTOCOMMIT to make it
clear in the name that it's specific to an editor and not to txn's as a
whole.
>
>
>> (make_editor): set the new flag, to be used by complete_cb later.
>>
>> Modified:
>>  subversion/trunk/subversion/include/svn_fs.h
>>  subversion/trunk/subversion/libsvn_fs/editor.c
>>
>> Modified: subversion/trunk/subversion/include/svn_fs.h
>> URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_fs.h?rev=1329083&r1=1329082&r2=1329083&view=diff
>>
==============================================================================
>> --- subversion/trunk/subversion/include/svn_fs.h (original)
>> +++ subversion/trunk/subversion/include/svn_fs.h Mon Apr 23 06:45:46 2012
>> @@ -808,6 +808,11 @@ typedef struct svn_fs_txn_t svn_fs_txn_t
>> * if a caller tries to edit a locked item without having rights to the
lock.
>> */
>> #define SVN_FS_TXN_CHECK_LOCKS                   0x00002
>> +
>> +/** Do not auto-commit the txn when its associated editor is marked
>> + * as completed.
>> + */
>> +#define SVN_FS_TXN_NO_AUTOCOMMIT                 0x00004
>> /** @} */
>
>
> The new #define doesn't belong in this block of defines as they are for
svn_fs_begin_txn2():

But it does... these three flags can be passed as the FLAGS param to
svn_fs_editor_create, and are used to control the txn created as part of
that.

(so I'm also not keen on inserting another word into the symbol)

Cheers,
-g