(To Subversion and TortoiseSVN lists.)

Subversion change r1815293 marks the shelving APIs with SVN_EXPERIMENTAL. In TortoiseSVN this translates to __declspec(deprecated("experimental function used")) which raises an error when the functions are called from SVN.cpp.

The basic way to work around this, as used in Subversion r1815294 in shelve-cmd.c and shelve.c, is to #define SVN_EXPERIMENTAL as nothing before including Subversion header files.

In TortoiseSVN's, the Subversion headers are included not directly in each file (e.g. SVN.cpp) but from inside the pre-compiled header stdafx.x.

I would have preferred to put '#define SVN_EXPERIMENTAL' just in SVN.cpp which is the only file that calls the experimental functions. Putting the #define directly in SVN.cpp, before #include stdafx.h, does NOT work, even if followed by including svn_types.h and svn_client.h. The compiler throws a warning about it and ignores it and still uses the declarations from the precompiled header and so raises the same errors in the end.

It looks like I need to put '#define SVN_EXPERIMENTAL' inside stdafx.h (just before the Subversion includes).

If I do, it then builds OK.

Is that OK?

- Julian

Reply via email to