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