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

Re: Shelving v1 -- move to trunk?

From: Julian Foad <julian_at_assembla.com>
Date: Thu, 16 Nov 2017 20:27:45 +0000

(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
Received on 2017-11-16 21:27:55 CET

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