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

Reply via email to