[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: thoughts about shelving

From: Julian Foad <julianfoad_at_apache.org>
Date: Sat, 15 Sep 2018 10:02:53 +0100

Stefan Kueng wrote on 2018-09-15:
> Hi,
>
> I know I'm a little bit late, but now I'm implementing the new shelf
> APIs in TSVN so it's now that I have some thoughts and suggestions:
>
> * there are deprecated APIs already, even though they weren't there in
> 1.10.0, for example svn_client_shelf_save_new_version - since they're
> all new in 1.10.1, why not just remove the deprecated ones and keep the
> current one?

Good point -- I can remove those.

> * when users update to the new version, existing shelves can't be used
> anymore since they're not compatible. Is there a way to convert the old
> shelves to the new format? If not then that means users would lose those
> saved shelves.

There isn't a way to convert old shelves (which are patch files) to the new format.

However, as they are just patch files, there is an easy manual work-around to still apply them -- using "svn patch <full path>".

I filed issue https://issues.apache.org/jira/browse/SVN-4774 "Shelving: presence of old 1.10 shelves breaks shelf-list" . While fixing that I can probably make some other changes, e.g. adding a description of how to manually recover an old shelf.

> * I generate an API doc with Doxygen. But some comments are not properly
> formatted for this: if a comment is after a variable, the comment must
> be formatted properly otherwise the Doxygen docs apply the comment to
> the wrong variable. For example, svn_client_shelf_version_t looks like
> the attached image. To make this work properly, the struct should look
> like this:
>
> typedef struct svn_client_shelf_version_t
> {
> /** Public fields (read-only for public use) */
> svn_client_shelf_t *shelf;
> apr_time_t mtime; /**< time-stamp of this version */
>
> /** Private fields */
> const char *files_dir_abspath; /**< abspath of the storage area */
> int version_number; /**< version number starting from 1 */
> } svn_client_shelf_version_t;
>
> Note the '<' in the field comments.

Thanks for that fix. I'll commit it.

> that's it for now. But since I'm not finished yet implementing
> everything in TSVN I might have some more comments soon.

Please do! Even bigger things that can't be fixed for 1.11 can be fixed immediately afterwards.

-- 
- Julian
Received on 2018-09-15 11:03:07 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.