summaryrefslogtreecommitdiff
path: root/src/apps/svnsync-vbox/main.c
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2014-03-26 19:21:20 +0000
committer <>2014-05-08 15:03:54 +0000
commitfb123f93f9f5ce42c8e5785d2f8e0edaf951740e (patch)
treec2103d76aec5f1f10892cd1d3a38e24f665ae5db /src/apps/svnsync-vbox/main.c
parent58ed4748338f9466599adfc8a9171280ed99e23f (diff)
downloadVirtualBox-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.c23
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,