diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2014-03-26 19:21:20 +0000 |
---|---|---|
committer | <> | 2014-05-08 15:03:54 +0000 |
commit | fb123f93f9f5ce42c8e5785d2f8e0edaf951740e (patch) | |
tree | c2103d76aec5f1f10892cd1d3a38e24f665ae5db /src/apps/svnsync-vbox/main.c | |
parent | 58ed4748338f9466599adfc8a9171280ed99e23f (diff) | |
download | VirtualBox-master.tar.gz |
Imported from /home/lorry/working-area/delta_VirtualBox/VirtualBox-4.3.10.tar.bz2.HEADVirtualBox-4.3.10master
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, |