diff --git a/src/csync_reconcile.c b/src/csync_reconcile.c index 477300c8db..84cc371240 100644 --- a/src/csync_reconcile.c +++ b/src/csync_reconcile.c @@ -139,12 +139,18 @@ static int _csync_merge_algorithm_visitor(void *obj, void *data) { || cur->type == CSYNC_FTW_TYPE_DIR) { other->instruction = CSYNC_INSTRUCTION_RENAME; other->destpath = c_strdup( cur->path ); - csync_vio_set_file_id( other->file_id, cur->file_id ); + if( !c_streq(cur->file_id, INVALID_FILE_ID) ) { + csync_vio_set_file_id( other->file_id, cur->file_id ); + } cur->instruction = CSYNC_INSTRUCTION_NONE; } else if (other->instruction == CSYNC_INSTRUCTION_REMOVE) { other->instruction = CSYNC_INSTRUCTION_RENAME; other->destpath = c_strdup( cur->path ); - csync_vio_set_file_id( other->file_id, cur->file_id ); + + if( !c_streq(cur->file_id, INVALID_FILE_ID) ) { + csync_vio_set_file_id( other->file_id, cur->file_id ); + } + cur->instruction = CSYNC_INSTRUCTION_NONE; } else if (other->instruction == CSYNC_INSTRUCTION_NEW) { CSYNC_LOG(CSYNC_LOG_PRIORITY_TRACE, "OOOO=> NEW detected in other tree!");