From 8eae273bdefab995416b8a8250b83f441a4add5a Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 30 Apr 2015 13:31:22 -0400 Subject: [PATCH] Correctly restore new local childnodes when choosing "keep local" --- js/id/actions/merge_remote_changes.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/js/id/actions/merge_remote_changes.js b/js/id/actions/merge_remote_changes.js index 2888c57b5..ff04a3f29 100644 --- a/js/id/actions/merge_remote_changes.js +++ b/js/id/actions/merge_remote_changes.js @@ -90,16 +90,17 @@ iD.actions.MergeRemoteChanges = function(id, localGraph, remoteGraph, formatUser remote = remoteGraph.hasEntity(id), target; - if (!remote) continue; - - if (option === 'force_remote' && remote.visible) { + if (option === 'force_remote' && remote && remote.visible) { updates.replacements.push(remote); - } - if (option === 'force_local' && local) { - target = iD.Entity(local, { version: remote.version }); + + } else if (option === 'force_local' && local) { + target = iD.Entity(local); + if (remote && remote.visible) { + target = target.update({ version: remote.version }); + } updates.replacements.push(target); - } - if (option === 'safe' && local && remote) { + + } else if (option === 'safe' && local && remote) { target = iD.Entity(local, { version: remote.version }); if (remote.visible) { target = mergeLocation(remote, target);