diff options
Diffstat (limited to 'src/apps/svnsync-vbox/main.c')
-rw-r--r-- | src/apps/svnsync-vbox/main.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/apps/svnsync-vbox/main.c b/src/apps/svnsync-vbox/main.c index e94893e7..ba33ca37 100644 --- a/src/apps/svnsync-vbox/main.c +++ b/src/apps/svnsync-vbox/main.c @@ -1286,10 +1286,18 @@ copy_file(const char *src_path, void *window_handler_baton; apr_hash_t *fileprops; apr_hash_index_t *hi; + svn_error_t *e = NULL; - SVN_ERR(eb->wrapped_editor->add_file(dst_path, wrapped_parent_node_baton, - NULL, SVN_IGNORED_REVNUM, pool, - &fb->wrapped_node_baton)); + e = eb->wrapped_editor->add_file(dst_path, wrapped_parent_node_baton, + NULL, SVN_IGNORED_REVNUM, pool, + &fb->wrapped_node_baton); + if (e) + { + svn_error_clear(e); + SVN_ERR(eb->wrapped_editor->open_file(dst_path, wrapped_parent_node_baton, + SVN_IGNORED_REVNUM, pool, + &fb->wrapped_node_baton)); + } subpool = svn_pool_create(pool); /* Copy over contents from src revision in source repository. */ @@ -1659,7 +1667,7 @@ open_directory(const char *path, #ifdef VBOX node_baton_t *db = apr_pcalloc(pool, sizeof(*db)); svn_boolean_t dir_added_this_changeset = FALSE; - svn_boolean_t dir_present_in_target = TRUE; + svn_boolean_t dir_present_in_target = FALSE; DX(fprintf(stderr, "open_directory %s\n", path);) db->ignore_everything_rec = pb->ignore_everything_rec; @@ -1671,8 +1679,7 @@ open_directory(const char *path, * repository. Can happen to be not there if the rename and * a change to some file in the directory is in one changeset. */ SVN_ERR(svn_ra_check_path(eb->from_session_prop, STRIP_LEADING_SLASH(path), - eb->current-1, - &nodekind, pool)); + eb->current-1, &nodekind, pool)); dir_added_this_changeset = (nodekind != svn_node_dir); if (!dir_added_this_changeset) { @@ -1691,6 +1698,10 @@ open_directory(const char *path, dir_present_in_target = (nodekind == svn_node_dir); } } + else + { + dir_present_in_target = TRUE; + } SVN_ERR(get_props_sync(eb->from_session_prop, eb->default_process, pb->process_default, pb->process_recursive, path, eb->current, &db->process, &db->process_default, |