Subversion
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
subversion
include
svn_version.h
Go to the documentation of this file.
1
/**
2
* @copyright
3
* ====================================================================
4
* Copyright (c) 2001-2008 CollabNet. All rights reserved.
5
*
6
* This software is licensed as described in the file COPYING, which
7
* you should have received as part of this distribution. The terms
8
* are also available at http://subversion.tigris.org/license-1.html.
9
* If newer versions of this license are posted there, you may use a
10
* newer version instead, at your option.
11
*
12
* This software consists of voluntary contributions made by many
13
* individuals. For exact contribution history, see the revision
14
* history and logs, available at http://subversion.tigris.org/.
15
* ====================================================================
16
* @endcopyright
17
*
18
* @file svn_version.h
19
* @brief Version information.
20
*/
21
22
#ifndef SVN_VERSION_H
23
#define SVN_VERSION_H
24
25
/* Hack to prevent the resource compiler from including
26
apr_general.h. It doesn't resolve the include paths
27
correctly and blows up without this.
28
*/
29
#ifndef APR_STRINGIFY
30
#include <apr_general.h>
31
#endif
32
33
#include "
svn_types.h
"
34
35
#ifdef __cplusplus
36
extern
"C"
{
37
#endif
/* __cplusplus */
38
39
40
/* Symbols that define the version number. */
41
42
/* Version numbers: <major>.<minor>.<micro>
43
*
44
* The version numbers in this file follow the rules established by:
45
*
46
* http://apr.apache.org/versioning.html
47
*/
48
49
/** Major version number.
50
*
51
* Modify when incompatible changes are made to published interfaces.
52
*/
53
#define SVN_VER_MAJOR 1
54
55
/** Minor version number.
56
*
57
* Modify when new functionality is added or new interfaces are
58
* defined, but all changes are backward compatible.
59
*/
60
#define SVN_VER_MINOR 6
61
62
/**
63
* Patch number.
64
*
65
* Modify for every released patch.
66
*
67
* @since New in 1.1.
68
*/
69
#define SVN_VER_PATCH 17
70
71
72
/** @deprecated Provided for backward compatibility with the 1.0 API. */
73
#define SVN_VER_MICRO SVN_VER_PATCH
74
75
/** @deprecated Provided for backward compatibility with the 1.0 API. */
76
#define SVN_VER_LIBRARY SVN_VER_MAJOR
77
78
79
/** Version tag: a string describing the version.
80
*
81
* This tag remains " (dev build)" in the repository so that we can
82
* always see from "svn --version" that the software has been built
83
* from the repository rather than a "blessed" distribution.
84
*
85
* When rolling a tarball, we automatically replace this text with " (r1234)"
86
* (where 1234 is the last revision on the branch prior to the release)
87
* for final releases; in prereleases, it becomes " (Alpha 1)",
88
* " (Beta 1)", etc., as appropriate.
89
*
90
* Always change this at the same time as SVN_VER_NUMTAG.
91
*/
92
#define SVN_VER_TAG " (r1128011)"
93
94
95
/** Number tag: a string describing the version.
96
*
97
* This tag is used to generate a version number string to identify
98
* the client and server in HTTP requests, for example. It must not
99
* contain any spaces. This value remains "-dev" in the repository.
100
*
101
* When rolling a tarball, we automatically replace this text with ""
102
* for final releases; in prereleases, it becomes "-alpha1, "-beta1",
103
* etc., as appropriate.
104
*
105
* Always change this at the same time as SVN_VER_TAG.
106
*/
107
#define SVN_VER_NUMTAG ""
108
109
110
/** Revision number: The repository revision number of this release.
111
*
112
* This constant is used to generate the build number part of the Windows
113
* file version. Its value remains 0 in the repository.
114
*
115
* When rolling a tarball, we automatically replace it with what we
116
* guess to be the correct revision number.
117
*/
118
#define SVN_VER_REVISION 1128011
119
120
121
/* Version strings composed from the above definitions. */
122
123
/** Version number */
124
#define SVN_VER_NUM APR_STRINGIFY(SVN_VER_MAJOR) \
125
"." APR_STRINGIFY(SVN_VER_MINOR) \
126
"." APR_STRINGIFY(SVN_VER_PATCH)
127
128
/** Version number with tag (contains no whitespace) */
129
#define SVN_VER_NUMBER SVN_VER_NUM SVN_VER_NUMTAG
130
131
/** Complete version string */
132
#define SVN_VERSION SVN_VER_NUMBER SVN_VER_TAG
133
134
135
136
/* Version queries and compatibility checks */
137
138
/**
139
* Version information. Each library contains a function called
140
* svn_<i>libname</i>_version() that returns a pointer to a statically
141
* allocated object of this type.
142
*
143
* @since New in 1.1.
144
*/
145
typedef
struct
svn_version_t
146
{
147
int
major
;
/**< Major version number */
148
int
minor
;
/**< Minor version number */
149
int
patch
;
/**< Patch number */
150
151
/**
152
* The version tag (#SVN_VER_NUMTAG).\ Must always point to a
153
* statically allocated string.
154
*/
155
const
char
*
tag
;
156
}
svn_version_t
;
157
158
/**
159
* Define a static svn_version_t object.
160
*
161
* @since New in 1.1.
162
*/
163
#define SVN_VERSION_DEFINE(name) \
164
static const svn_version_t name = \
165
{ \
166
SVN_VER_MAJOR, \
167
SVN_VER_MINOR, \
168
SVN_VER_PATCH, \
169
SVN_VER_NUMTAG \
170
} \
171
172
/**
173
* Generate the implementation of a version query function.
174
*
175
* @since New in 1.1.
176
*/
177
#define SVN_VERSION_BODY \
178
SVN_VERSION_DEFINE(versioninfo); \
179
return &versioninfo
180
181
/**
182
* Check library version compatibility. Return #TRUE if the client's
183
* version, given in @a my_version, is compatible with the library
184
* version, provided in @a lib_version.
185
*
186
* This function checks for version compatibility as per our
187
* guarantees, but requires an exact match when linking to an
188
* unreleased library. A development client is always compatible with
189
* a previous released library.
190
*
191
* @since New in 1.1.
192
*/
193
svn_boolean_t
194
svn_ver_compatible
(
const
svn_version_t
*my_version,
195
const
svn_version_t
*lib_version);
196
197
/**
198
* Check if @a my_version and @a lib_version encode the same version number.
199
*
200
* @since New in 1.2.
201
*/
202
svn_boolean_t
203
svn_ver_equal
(
const
svn_version_t
*my_version,
204
const
svn_version_t
*lib_version);
205
206
207
/**
208
* An entry in the compatibility checklist.
209
* @see svn_ver_check_list()
210
*
211
* @since New in 1.1.
212
*/
213
typedef
struct
svn_version_checklist_t
214
{
215
const
char
*
label
;
/**< Entry label */
216
217
/** Version query function for this entry */
218
const
svn_version_t
*(*version_query)(void);
219
}
svn_version_checklist_t
;
220
221
222
/**
223
* Perform a series of version compatibility checks. Checks if @a
224
* my_version is compatible with each entry in @a checklist. @a
225
* checklist must end with an entry whose label is @c NULL.
226
*
227
* @see svn_ver_compatible()
228
*
229
* @since New in 1.1.
230
*/
231
svn_error_t
*
232
svn_ver_check_list
(
const
svn_version_t
*my_version,
233
const
svn_version_checklist_t
*checklist);
234
235
236
/**
237
* Type of function returning library version.
238
*
239
* @since New in 1.6.
240
*/
241
typedef
const
svn_version_t
*(*svn_version_func_t)(void);
242
243
244
/* libsvn_subr doesn't have an svn_subr header, so put the prototype here. */
245
/**
246
* Get libsvn_subr version information.
247
*
248
* @since New in 1.1.
249
*/
250
const
svn_version_t
*
251
svn_subr_version
(
void
);
252
253
254
#ifdef __cplusplus
255
}
256
#endif
/* __cplusplus */
257
258
#endif
/* SVN_VERSION_H */
Generated on Fri Jun 7 2013 05:55:21 for Subversion by
1.8.1.2