VirtualBox

Changeset 48252 in vbox for trunk/src


Ignore:
Timestamp:
Sep 3, 2013 7:24:22 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
88660
Message:

svnsync-vbox/main.c: fix some bugs which showed up with the recent export problems

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/apps/svnsync-vbox/main.c

    r33540 r48252  
    12421242  svn_boolean_t prev_process_default, process_default;
    12431243  svn_boolean_t prev_process_recursive, process_recursive;
     1244  svn_boolean_t added_ancestor_dir; /* This dir or its ancestors were added in this changeset */
    12441245  svn_boolean_t ignore_everything; /* Ignore operations on this dir/file. */
    12451246  svn_boolean_t ignore_everything_rec; /* Recursively ignore operations on subdirs/files. */
     
    12911292  apr_hash_t *fileprops;
    12921293  apr_hash_index_t *hi;
    1293 
    1294   SVN_ERR(eb->wrapped_editor->add_file(dst_path, wrapped_parent_node_baton,
    1295                                        NULL, SVN_IGNORED_REVNUM, pool,
    1296                                        &fb->wrapped_node_baton));
     1294  svn_error_t *e = NULL;
     1295
     1296  e = eb->wrapped_editor->add_file(dst_path, wrapped_parent_node_baton,
     1297                                   NULL, SVN_IGNORED_REVNUM, pool,
     1298                                   &fb->wrapped_node_baton);
     1299  if (e)
     1300  {
     1301    svn_error_clear(e);
     1302    SVN_ERR(eb->wrapped_editor->open_file(dst_path, wrapped_parent_node_baton,
     1303                                          SVN_IGNORED_REVNUM, pool,
     1304                                          &fb->wrapped_node_baton));
     1305  }
    12971306
    12981307  subpool = svn_pool_create(pool);
     
    16021611    {
    16031612      /* Genuinely add a new dir, referring to other revision/name if known. */
     1613      b->added_ancestor_dir = TRUE;
    16041614      SVN_ERR(eb->wrapped_editor->add_directory(path, pb->wrapped_node_baton,
    16051615                                                copyfrom_path,
     
    16641674  node_baton_t *db = apr_pcalloc(pool, sizeof(*db));
    16651675  svn_boolean_t dir_added_this_changeset = FALSE;
    1666   svn_boolean_t dir_present_in_target = TRUE;
     1676  svn_boolean_t dir_present_in_target = FALSE;
    16671677
    16681678  DX(fprintf(stderr, "open_directory %s\n", path);)
     1679  db->added_ancestor_dir = pb->added_ancestor_dir;
    16691680  db->ignore_everything_rec = pb->ignore_everything_rec;
    16701681  db->ignore_everything = db->ignore_everything_rec;
     
    16761687     * a change to some file in the directory is in one changeset. */
    16771688    SVN_ERR(svn_ra_check_path(eb->from_session_prop, STRIP_LEADING_SLASH(path),
    1678                               eb->current-1,
    1679                               &nodekind, pool));
    1680     dir_added_this_changeset = (nodekind != svn_node_dir);
     1689                              eb->current-1, &nodekind, pool));
     1690    dir_added_this_changeset =    db->added_ancestor_dir
     1691                               || (nodekind != svn_node_dir);
    16811692    if (!dir_added_this_changeset)
    16821693    {
     
    16961707      }
    16971708    }
     1709    else
     1710    {
     1711      dir_present_in_target = TRUE;
     1712    }
    16981713    SVN_ERR(get_props_sync(eb->from_session_prop, eb->default_process,
    16991714                           pb->process_default, pb->process_recursive, path,
     
    17461761        /* Directory appears due to changes to the process settings. */
    17471762        eb->changeset_live = TRUE;
     1763        db->added_ancestor_dir = TRUE;
    17481764        SVN_ERR(eb->wrapped_editor->add_directory(path, pb->wrapped_node_baton,
    17491765                                                  NULL, SVN_IGNORED_REVNUM, pool,
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette