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

« back to all changes in this revision

Viewing changes to subversion/libsvn_repos/dump.c

  • Committer: Package Import Robot
  • Author(s): James McCoy
  • Date: 2014-05-20 22:45:32 UTC
  • mfrom: (0.2.12)
  • Revision ID: package-import@ubuntu.com-20140520224532-4fec3gohdzyy692g
Tags: 1.8.9-1
* New upstream release
* Merge changes from Ubuntu:
  - Add DEB-8 test for Apache functionality
  - debian/rules: Create pot file on build.
  - debian/rules: Ensure the doxygen output directory exists
  - Move svn2cl to subversion-tools' Suggests on Ubuntu.

Show diffs side-by-side

added added

removed removed

Lines of Context:
217
217
}
218
218
 
219
219
 
 
220
/* If the mergeinfo in MERGEINFO_STR refers to any revisions older than
 
221
 * OLDEST_DUMPED_REV, issue a warning and set *FOUND_OLD_MERGEINFO to TRUE,
 
222
 * otherwise leave *FOUND_OLD_MERGEINFO unchanged.
 
223
 */
 
224
static svn_error_t *
 
225
verify_mergeinfo_revisions(svn_boolean_t *found_old_mergeinfo,
 
226
                           const char *mergeinfo_str,
 
227
                           svn_revnum_t oldest_dumped_rev,
 
228
                           svn_repos_notify_func_t notify_func,
 
229
                           void *notify_baton,
 
230
                           apr_pool_t *pool)
 
231
{
 
232
  svn_mergeinfo_t mergeinfo, old_mergeinfo;
 
233
 
 
234
  SVN_ERR(svn_mergeinfo_parse(&mergeinfo, mergeinfo_str, pool));
 
235
  SVN_ERR(svn_mergeinfo__filter_mergeinfo_by_ranges(
 
236
            &old_mergeinfo, mergeinfo,
 
237
            oldest_dumped_rev - 1, 0,
 
238
            TRUE, pool, pool));
 
239
 
 
240
  if (apr_hash_count(old_mergeinfo))
 
241
    {
 
242
      svn_repos_notify_t *notify =
 
243
        svn_repos_notify_create(svn_repos_notify_warning, pool);
 
244
 
 
245
      notify->warning = svn_repos_notify_warning_found_old_mergeinfo;
 
246
      notify->warning_str = apr_psprintf(
 
247
        pool,
 
248
        _("Mergeinfo referencing revision(s) prior "
 
249
          "to the oldest dumped revision (r%ld). "
 
250
          "Loading this dump may result in invalid "
 
251
          "mergeinfo."),
 
252
        oldest_dumped_rev);
 
253
 
 
254
      if (found_old_mergeinfo)
 
255
        *found_old_mergeinfo = TRUE;
 
256
      notify_func(notify_baton, notify, pool);
 
257
    }
 
258
 
 
259
  return SVN_NO_ERROR;
 
260
}
 
261
 
 
262
 
220
263
/* This helper is the main "meat" of the editor -- it does all the
221
264
   work of writing a node record.
222
265
 
475
518
                                                      SVN_PROP_MERGEINFO);
476
519
          if (mergeinfo_str)
477
520
            {
478
 
              svn_mergeinfo_t mergeinfo, old_mergeinfo;
479
 
 
480
 
              SVN_ERR(svn_mergeinfo_parse(&mergeinfo, mergeinfo_str->data,
481
 
                                          pool));
482
 
              SVN_ERR(svn_mergeinfo__filter_mergeinfo_by_ranges(
483
 
                &old_mergeinfo, mergeinfo,
484
 
                eb->oldest_dumped_rev - 1, 0,
485
 
                TRUE, pool, pool));
486
 
              if (apr_hash_count(old_mergeinfo))
487
 
                {
488
 
                  svn_repos_notify_t *notify =
489
 
                    svn_repos_notify_create(svn_repos_notify_warning, pool);
490
 
 
491
 
                  notify->warning = svn_repos_notify_warning_found_old_mergeinfo;
492
 
                  notify->warning_str = apr_psprintf(
493
 
                    pool,
494
 
                    _("Mergeinfo referencing revision(s) prior "
495
 
                      "to the oldest dumped revision (r%ld). "
496
 
                      "Loading this dump may result in invalid "
497
 
                      "mergeinfo."),
498
 
                    eb->oldest_dumped_rev);
499
 
 
500
 
                  if (eb->found_old_mergeinfo)
501
 
                    *eb->found_old_mergeinfo = TRUE;
502
 
                  eb->notify_func(eb->notify_baton, notify, pool);
503
 
                }
 
521
              /* An error in verifying the mergeinfo must not prevent dumping
 
522
                 the data. Ignore any such error. */
 
523
              svn_error_clear(verify_mergeinfo_revisions(
 
524
                                eb->found_old_mergeinfo,
 
525
                                mergeinfo_str->data, eb->oldest_dumped_rev,
 
526
                                eb->notify_func, eb->notify_baton,
 
527
                                pool));
504
528
            }
505
529
        }
506
530