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