~ubuntu-branches/debian/sid/subversion/sid

« back to all changes in this revision

Viewing changes to subversion/include/private/svn_mergeinfo_private.h

  • Committer: Package Import Robot
  • Author(s): James McCoy, Peter Samuelson, James McCoy
  • Date: 2014-01-12 19:48:33 UTC
  • mfrom: (0.2.10)
  • Revision ID: package-import@ubuntu.com-20140112194833-w3axfwksn296jn5x
Tags: 1.8.5-1
[ Peter Samuelson ]
* New upstream release.  (Closes: #725787) Rediff patches:
  - Remove apr-abi1 (applied upstream), rename apr-abi2 to apr-abi
  - Remove loosen-sqlite-version-check (shouldn't be needed)
  - Remove java-osgi-metadata (applied upstream)
  - svnmucc prompts for a changelog if none is provided. (Closes: #507430)
  - Remove fix-bdb-version-detection, upstream uses "apu-config --dbm-libs"
  - Remove ruby-test-wc (applied upstream)
  - Fix “svn diff -r N file” when file has svn:mime-type set.
    (Closes: #734163)
  - Support specifying an encoding for mod_dav_svn's environment in which
    hooks are run.  (Closes: #601544)
  - Fix ordering of “svnadmin dump” paths with certain APR versions.
    (Closes: #687291)
  - Provide a better error message when authentication fails with an
    svn+ssh:// URL.  (Closes: #273874)
  - Updated Polish translations.  (Closes: #690815)

[ James McCoy ]
* Remove all traces of libneon, replaced by libserf.
* patches/sqlite_3.8.x_workaround: Upstream fix for wc-queries-test test
  failurse.
* Run configure with --with-apache-libexecdir, which allows removing part of
  patches/rpath.
* Re-enable auth-test as upstream has fixed the problem of picking up
  libraries from the environment rather than the build tree.
  (Closes: #654172)
* Point LD_LIBRARY_PATH at the built auth libraries when running the svn
  command during the build.  (Closes: #678224)
* Add a NEWS entry describing how to configure mod_dav_svn to understand
  UTF-8.  (Closes: #566148)
* Remove ancient transitional package, libsvn-ruby.
* Enable compatibility with Sqlite3 versions back to Wheezy.
* Enable hardening flags.  (Closes: #734918)
* patches/build-fixes: Enable verbose build logs.
* Build against the default ruby version.  (Closes: #722393)

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
/* Set inheritability of all ranges in RANGELIST to INHERITABLE.
42
42
   If RANGELIST is NULL do nothing. */
43
43
void
44
 
svn_rangelist__set_inheritance(apr_array_header_t *rangelist,
 
44
svn_rangelist__set_inheritance(svn_rangelist_t *rangelist,
45
45
                               svn_boolean_t inheritable);
46
46
 
 
47
/* Parse a rangelist from the string STR. Set *RANGELIST to the result,
 
48
 * allocated in RESULT_POOL. Return an error if the rangelist is not
 
49
 * well-formed (for example, if it contains invalid characters or if
 
50
 * R1 >= R2 in a "R1-R2" range element).
 
51
 *
 
52
 * Unlike svn_mergeinfo_parse(), this does not sort the ranges into order
 
53
 * or combine adjacent and overlapping ranges.
 
54
 *
 
55
 * The compaction can be done with svn_rangelist__combine_adjacent_ranges().
 
56
 */
 
57
svn_error_t *
 
58
svn_rangelist__parse(svn_rangelist_t **rangelist,
 
59
                     const char *str,
 
60
                     apr_pool_t *result_pool);
 
61
 
 
62
/* In-place combines adjacent ranges in a rangelist.
 
63
   SCRATCH_POOL is just used for providing error messages. */
 
64
svn_error_t *
 
65
svn_rangelist__combine_adjacent_ranges(svn_rangelist_t *rangelist,
 
66
                                       apr_pool_t *scratch_pool);
 
67
 
47
68
/* Set inheritability of all rangelists in MERGEINFO to INHERITABLE.
48
69
   If MERGEINFO is NULL do nothing.  If a rangelist in MERGEINFO is
49
70
   NULL leave it alone. */
87
108
 
88
109
/* Make a shallow (ie, mergeinfos are not duped, or altered at all;
89
110
   keys share storage) copy of IN_CATALOG in *OUT_CATALOG, removing
90
 
   PREFIX_PATH (which is an absolute path) from the beginning of each
91
 
   key in the catalog (each of which is also an absolute path).  It is
92
 
   illegal for any key to not start with PREFIX_PATH.  The new hash
 
111
   PREFIX_PATH from the beginning of each key in the catalog.
 
112
   PREFIX_PATH and the keys of IN_CATALOG are absolute 'fspaths',
 
113
   starting with '/'.  It is illegal for any key to not start with
 
114
   PREFIX_PATH.  The keys of *OUT_CATALOG are relpaths.  The new hash
93
115
   and temporary values are allocated in POOL.  (This is useful for
94
116
   making the return value from svn_ra_get_mergeinfo relative to the
95
117
   session root, say.) */
112
134
                                     apr_pool_t *result_pool,
113
135
                                     apr_pool_t *scratch_pool);
114
136
 
115
 
/* Set *OUT_MERGEINFO to a deep copy of MERGEINFO with the relpath
 
137
/* Set *OUT_MERGEINFO to a shallow copy of MERGEINFO with the relpath
116
138
   SUFFIX_RELPATH added to the end of each key path.
117
139
 
118
 
   Allocate *OUT_MERGEINFO in RESULT_POOL.  Use SCRATCH_POOL for any
119
 
   temporary allocations. */
 
140
   Allocate *OUT_MERGEINFO and the new keys in RESULT_POOL.  Use
 
141
   SCRATCH_POOL for any temporary allocations. */
120
142
svn_error_t *
121
143
svn_mergeinfo__add_suffix_to_mergeinfo(svn_mergeinfo_t *out_mergeinfo,
122
144
                                       svn_mergeinfo_t mergeinfo,
143
165
                                           const char *val_prefix,
144
166
                                           apr_pool_t *pool);
145
167
 
146
 
/* Create a string representation of MERGEINFO in *OUTPUT, allocated in POOL.
147
 
   Unlike svn_mergeinfo_to_string(), NULL MERGEINFO is tolerated and results
148
 
   in *OUTPUT set to "\n".  If SVN_DEBUG is true, then NULL or empty MERGEINFO
149
 
   causes *OUTPUT to be set to an appropriate newline terminated string.  If
150
 
   PREFIX is not NULL then prepend PREFIX to each line in *OUTPUT.
151
 
 
152
 
   Any relative merge source paths in MERGEINFO are converted to absolute
153
 
   paths in *OUTPUT.*/
154
 
svn_error_t *
155
 
svn_mergeinfo__to_formatted_string(svn_string_t **output,
156
 
                                   svn_mergeinfo_t mergeinfo,
157
 
                                   const char *prefix,
158
 
                                   apr_pool_t *pool);
159
 
 
160
168
/* Set *YOUNGEST_REV and *OLDEST_REV to the youngest and oldest revisions
161
 
   found in the rangelists within MERGEINFO.  If MERGEINFO is NULL or empty
 
169
   found in the rangelists within MERGEINFO.  Note that *OLDEST_REV is
 
170
   exclusive and *YOUNGEST_REV is inclusive.  If MERGEINFO is NULL or empty
162
171
   set *YOUNGEST_REV and *OLDEST_REV to SVN_INVALID_REVNUM. */
163
172
svn_error_t *
164
173
svn_mergeinfo__get_range_endpoints(svn_revnum_t *youngest_rev,
167
176
                                   apr_pool_t *pool);
168
177
 
169
178
/* Set *FILTERED_MERGEINFO to a deep copy of MERGEINFO, allocated in
170
 
   RESULT_POOL, less any rangelists that fall outside of the range
171
 
   OLDEST_REV:YOUNGEST_REV (inclusive) if INCLUDE_RANGE is true, or less
172
 
   any rangelists within the range OLDEST_REV:YOUNGEST_REV if INCLUDE_RANGE
 
179
   RESULT_POOL, less any revision ranges that fall outside of the range
 
180
   OLDEST_REV:YOUNGEST_REV (exclusive:inclusive) if INCLUDE_RANGE is true,
 
181
   or less any ranges within OLDEST_REV:YOUNGEST_REV if INCLUDE_RANGE
173
182
   is false.  If all the rangelists mapped to a given path are filtered
174
183
   then filter that path as well.  If all paths are filtered or MERGEINFO is
175
184
   empty or NULL then *FILTERED_MERGEINFO is set to an empty hash.
208
217
svn_mergeinfo__is_noninheritable(svn_mergeinfo_t mergeinfo,
209
218
                                 apr_pool_t *scratch_pool);
210
219
 
211
 
/* If MERGEINFO_STR is a string representation of non-inheritable mergeinfo
212
 
   set *IS_NONINHERITABLE to TRUE, set it to FALSE otherwise.  MERGEINFO_STR
213
 
   may be NULL or empty.  If MERGEINFO_STR cannot be parsed return
214
 
   SVN_ERR_MERGEINFO_PARSE_ERROR. */
215
 
svn_error_t *
216
 
svn_mergeinfo__string_has_noninheritable(svn_boolean_t *is_noninheritable,
217
 
                                         const char *mergeinfo_str,
218
 
                                         apr_pool_t *scratch_pool);
219
 
 
220
220
/* Return a rangelist with one svn_merge_range_t * element defined by START,
221
221
   END, and INHERITABLE.  The rangelist and its contents are allocated in
222
222
   RESULT_POOL. */
223
 
apr_array_header_t *
 
223
svn_rangelist_t *
224
224
svn_rangelist__initialize(svn_revnum_t start,
225
225
                          svn_revnum_t end,
226
226
                          svn_boolean_t inheritable,
252
252
                                       const apr_array_header_t *segments,
253
253
                                       apr_pool_t *pool);
254
254
 
 
255
/* Merge every rangelist in MERGEINFO into the given MERGED_RANGELIST,
 
256
 * ignoring the source paths of MERGEINFO. MERGED_RANGELIST may
 
257
 * initially be empty. New elements added to RANGELIST are allocated in
 
258
 * RESULT_POOL. See svn_rangelist_merge2() for details of inheritability
 
259
 * etc. */
 
260
svn_error_t *
 
261
svn_rangelist__merge_many(svn_rangelist_t *merged_rangelist,
 
262
                          svn_mergeinfo_t mergeinfo,
 
263
                          apr_pool_t *result_pool,
 
264
                          apr_pool_t *scratch_pool);
 
265
 
255
266
#ifdef __cplusplus
256
267
}
257
268
#endif /* __cplusplus */