From 2e5b5215a4a9eab59320f2606bc87bcb91b8ecf1 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Mon, 6 Jun 2016 10:30:30 -0400 Subject: [PATCH 01/17] Revert "Revert "VFS Fix collab code reverting for unsaved files"" --- package.json | 3 +-- plugins/c9.ide.watcher/gui.js | 42 +++++++++++++++++------------------ 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 516f76e7..4713373c 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#24e28024d7", + "c9.ide.collab": "#a359611dd8", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", @@ -97,7 +97,6 @@ "c9.ide.installer": "#b2e4ba0a92", "c9.ide.language.python": "#15e7ff9a3f", "c9.ide.language.go": "#6ce1c7a7ef", - "c9.ide.mount": "#3001a633f2", "c9.ide.navigate": "#5d5707058c", "c9.ide.newresource": "#981a408a7b", "c9.ide.openfiles": "#2ae85a9e33", diff --git a/plugins/c9.ide.watcher/gui.js b/plugins/c9.ide.watcher/gui.js index e1330ca4..7e1979e8 100644 --- a/plugins/c9.ide.watcher/gui.js +++ b/plugins/c9.ide.watcher/gui.js @@ -1,7 +1,7 @@ define(function(require, exports, module) { main.consumes = [ "Plugin", "fs", "settings", "preferences", "watcher", "tabManager", - "save", "dialog.question", "dialog.filechange", "threewaymerge" + "save", "dialog.question", "dialog.filechange", "threewaymerge", "collab" ]; main.provides = ["watcher.gui"]; return main; @@ -17,6 +17,7 @@ define(function(require, exports, module) { var question = imports["dialog.question"]; var filechange = imports["dialog.filechange"]; var threeWayMerge = imports.threewaymerge.merge; + var collab = imports.collab; var collabEnabled = options.collab; @@ -119,33 +120,33 @@ define(function(require, exports, module) { // Hook watcher events - // Update a file + // A change event sent from the watcher plugin watcher.on("change", function(e) { var tab = tabManager.findTab(e.path); if (tab) { - // If collab picks this up and handles the change it will return false - if (emit("docChange", {tab: tab}) === false) - return; + if (collabEnabled && tab.editorType == "ace") { + /* If the lastChange (added by collab) was greater than 1 second ago set up a watch + To ensure that collab makes this change, if not report an error. The lastChange + check is to avoid a race condition if collab updates before this function runs */ + if (!tab.meta.$lastCollabChange || tab.meta.$lastCollabChange < (Date.now() - 1000)) { + if (tab.meta.$collabChangeRegistered) { + clearTimeout(tab.meta.$collabChangeRegistered); + } + } + + return false; + } addChangedTab(tab, e.type === "change"); } }); - // Directory watcher is not needed if the normal watcher works - // watcher.on("directory", function(e) { - // var base = e.path; - // var files = e.files; - // - // // Rename all tabs - // tabManager.getTabs().forEach(function(tab) { - // if (tab.path && tab.path.indexOf(base) == 0) { - // // If the file is gone, lets notify the user - // if (files.indexOf(tab.path) == -1) { - // resolveFileDelete(tab); - // } - // } - // }); - // }); + collab.on("change", function (e) { + var tab = tabManager.findTab(e.path); + if (tab) { + addChangedTab(tab, e.type === "change"); + } + }); watcher.on("delete", function(e) { var tab = tabManager.findTab(e.path); @@ -293,7 +294,6 @@ define(function(require, exports, module) { function automerge(tab, data) { if (!settings.getBool("user/general/@automerge")) return false; - return merge(tab, data); } From 15d8db963a1ae746ea62de503193997b55dbd402 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Mon, 6 Jun 2016 16:51:25 +0000 Subject: [PATCH 02/17] Expire unsaved changes after 24 hours --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4713373c..dd0822e0 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#a359611dd8", + "c9.ide.collab": "#7712a59456", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From f86b9037e16f0e0cb690fef112f4379620feaf92 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Mon, 6 Jun 2016 18:28:18 +0000 Subject: [PATCH 03/17] Always show dialog when collab reports that the doc has changed. Don't do a double check as sometimes that will cause the dialog to not show --- package.json | 2 +- plugins/c9.ide.watcher/gui.js | 33 +++++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index dd0822e0..9f477c40 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#7712a59456", + "c9.ide.collab": "#0b139735fd", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", diff --git a/plugins/c9.ide.watcher/gui.js b/plugins/c9.ide.watcher/gui.js index 7e1979e8..90205fe5 100644 --- a/plugins/c9.ide.watcher/gui.js +++ b/plugins/c9.ide.watcher/gui.js @@ -20,6 +20,12 @@ define(function(require, exports, module) { var collab = imports.collab; var collabEnabled = options.collab; + + var comparisonType = { + TIMESTAMP_AND_CONTENTS: "TIMESTAMP_AND_CONTENTS", + CONTENTS: "CONTENTS", + NONE: "NONE" + }; /***** Initialization *****/ @@ -88,14 +94,14 @@ define(function(require, exports, module) { } if (tab.classList.contains("conflict")) { - addChangedTab(tab, true); + addChangedTab(tab, comparisonType.TIMESTAMP_AND_CONTENTS); } }); tabManager.on("open", function(e) { initializeDocument(e.tab.document); if (e.tab.classList.contains("conflict")) { - addChangedTab(e.tab, true); + addChangedTab(e.tab, comparisonType.TIMESTAMP_AND_CONTENTS); } }, plugin); @@ -137,14 +143,14 @@ define(function(require, exports, module) { return false; } - addChangedTab(tab, e.type === "change"); + addChangedTab(tab, comparisonType.TIMESTAMP_AND_CONTENTS); } }); collab.on("change", function (e) { var tab = tabManager.findTab(e.path); if (tab) { - addChangedTab(tab, e.type === "change"); + addChangedTab(tab, comparisonType.NONE); } }); @@ -157,7 +163,7 @@ define(function(require, exports, module) { /***** Methods *****/ - function addChangedTab(tab, isSameFile) { + function addChangedTab(tab, doubleCheckComparisonType) { // If we already have a dialog open, just update it, but mark the value dirty if (changedPaths[tab.path]) { if (changedPaths[tab.path].data) @@ -179,7 +185,7 @@ define(function(require, exports, module) { if (tabManager.focussedTab && tabManager.focussedTab.editorType == "terminal") { tabManager.once("focus", function(){ - addChangedTab(tab, false); + addChangedTab(tab, comparisonType.CONTENTS); }); return; } @@ -194,10 +200,17 @@ define(function(require, exports, module) { var doc = tab.document; var path = tab.path; - if (isSameFile) - checkByStatOrContents(); - else - checkByContents(); + switch (doubleCheckComparisonType) { + case comparisonType.TIMESTAMP_AND_CONTENTS: + checkByStatOrContents(); + break; + case comparisonType.CONTENTS: + checkByContents(); + break; + case comparisonType.NONE: + dialog(); + break; + } function dialog(data) { if (!changedPaths[path]) From 771e71812db768babd79c9db092c0a34b9e59699 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Mon, 6 Jun 2016 19:43:35 +0000 Subject: [PATCH 04/17] Adding some more logging to collab --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9f477c40..76d4d480 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#0b139735fd", + "c9.ide.collab": "#7b6a094d0f", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From 359053d792bf7db86c85d85022f34446395788bf Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Mon, 6 Jun 2016 20:34:44 +0000 Subject: [PATCH 05/17] Retry setting changed or pending changes on a document who's tab isn't loaded --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 76d4d480..b9848fb3 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#7b6a094d0f", + "c9.ide.collab": "#e7f2e5542c", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From 8db82648ea0c9a968a99035431e2a2de63f20aad Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Mon, 6 Jun 2016 20:41:11 +0000 Subject: [PATCH 06/17] Revert "Retry setting changed or pending changes on a document who's tab isn't loaded" This reverts commit 359053d792bf7db86c85d85022f34446395788bf. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b9848fb3..e819e148 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#e7f2e5542c", + "c9.ide.collab": "#59fed9c6b1", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From 7ec2d04a881021cdd0937adf48c1dc5d9e96953d Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Mon, 6 Jun 2016 22:41:58 +0000 Subject: [PATCH 07/17] Show the tab as unsaved if it has pending changes that haven't been saved --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e819e148..0c4294d6 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#59fed9c6b1", + "c9.ide.collab": "#b46916087a", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From 4296dfd20bcf2c3721e6339dcad9b784d3bc7c07 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Tue, 7 Jun 2016 00:11:07 +0000 Subject: [PATCH 08/17] Added syncing of files with disk when a user explicitly closes them --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0c4294d6..acfffcd9 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#b46916087a", + "c9.ide.collab": "#15c7cfebf8", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From fcd5cd8ee2b95a2c0e31806215f8df19166b3231 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Tue, 7 Jun 2016 12:35:07 +0000 Subject: [PATCH 09/17] Use ctime instead of mtime for watcher --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 23202a7a..09ac7e83 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#15c7cfebf8", + "c9.ide.collab": "#7c22484a41", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From 43646176998be0f691695ac44b3d3e87986d7309 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Tue, 7 Jun 2016 16:00:56 +0000 Subject: [PATCH 10/17] Added log about expiring changes. Made localfs send ctime as well as mtime --- node_modules/vfs-local/localfs.js | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/node_modules/vfs-local/localfs.js b/node_modules/vfs-local/localfs.js index c53c1ad4..d16136c6 100644 --- a/node_modules/vfs-local/localfs.js +++ b/node_modules/vfs-local/localfs.js @@ -379,6 +379,7 @@ module.exports = function setup(fsOptions) { } else { entry.size = stat.size; entry.mtime = stat.mtime.valueOf(); + entry.ctime = stat.ctime.valueOf(); if (stat.isDirectory()) { entry.mime = "inode/directory"; diff --git a/package.json b/package.json index 09ac7e83..c3d25a23 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#7c22484a41", + "c9.ide.collab": "#c676c6dc2b", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From 079c22e5aab79256efe2cf3e0287009997e565bb Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Tue, 7 Jun 2016 16:50:59 +0000 Subject: [PATCH 11/17] Save tab after resolving so collab knows the latest version was chosen by the user --- plugins/c9.ide.watcher/gui.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/c9.ide.watcher/gui.js b/plugins/c9.ide.watcher/gui.js index 90205fe5..36e26211 100644 --- a/plugins/c9.ide.watcher/gui.js +++ b/plugins/c9.ide.watcher/gui.js @@ -191,7 +191,6 @@ define(function(require, exports, module) { } function resolve() { - console.log("[watchers] resolved change event without dialog", path); doc.tab.classList.remove("conflict"); delete doc.meta.$merge; delete changedPaths[path]; @@ -326,8 +325,10 @@ define(function(require, exports, module) { doc.meta.$mergeRoot = data; // If the value on disk is the same as in the document, set the bookmark - if (mergedValue == data) + if (mergedValue == data) { doc.undoManager.bookmark(); + save.save(tab); + } return true; } @@ -352,6 +353,7 @@ define(function(require, exports, module) { var doc = tab.document; doc.setBookmarkedValue(data, true); doc.meta.timestamp = Date.now() - settings.timeOffset; + save.save(tab); changedPaths[path].resolve(); } From 113bd19640d7ff38c804b3e7871bc95383fe5b68 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Thu, 9 Jun 2016 19:38:11 +0000 Subject: [PATCH 12/17] Use docId instead of path for notifying user of changes --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c3d25a23..a9edd3e4 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#c676c6dc2b", + "c9.ide.collab": "#bd2ab1adc6", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From 461d910a634c3c7dc68f66522dcaed8483a8914e Mon Sep 17 00:00:00 2001 From: nightwing Date: Thu, 9 Jun 2016 23:54:01 +0400 Subject: [PATCH 13/17] use normalized docId instead of one from data --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a9edd3e4..57480426 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#bd2ab1adc6", + "c9.ide.collab": "#6bda028b24", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", From c6fe50b11558f7d19791dbea57d8cce2d1a632d9 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Wed, 15 Jun 2016 15:24:53 +0000 Subject: [PATCH 14/17] Bump protocol version --- node_modules/kaefer/lib/version.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node_modules/kaefer/lib/version.js b/node_modules/kaefer/lib/version.js index c1ca0a86..408500f3 100644 --- a/node_modules/kaefer/lib/version.js +++ b/node_modules/kaefer/lib/version.js @@ -2,6 +2,6 @@ define(function(require, exports, module) { // on each backwards incompatible protocol change the version number must be // increased -exports.protocol = 12; +exports.protocol = 13; }); \ No newline at end of file From 8e02fc257cab3d97c07b398a481b0dfde407eb38 Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Wed, 15 Jun 2016 17:05:15 +0000 Subject: [PATCH 15/17] Improve automerge message --- plugins/c9.ide.watcher/gui.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/c9.ide.watcher/gui.js b/plugins/c9.ide.watcher/gui.js index 36e26211..c82f0b98 100644 --- a/plugins/c9.ide.watcher/gui.js +++ b/plugins/c9.ide.watcher/gui.js @@ -594,9 +594,10 @@ define(function(require, exports, module) { question.show( "Always merge?", "Always merge on file changes?", - "Enabling 'auto merge' makes it very easy to collaborate on " - + "files with other people, especially when combined with " - + "'auto save'. This setting can be controlled from the " + "With 'auto merge' enabled, if a file changes " + + "on disk and you have unsaved changes in the IDE, " + + "it will automatically attempt to merge your changes with the new file. " + + "This setting can be controlled from the " + "settings panel as well.", function() { // on yes if (question.dontAsk) From 27823aa4e1251c1cbf7fb149df37c04b978fab5f Mon Sep 17 00:00:00 2001 From: Tim Robinson Date: Tue, 21 Jun 2016 21:51:14 +0000 Subject: [PATCH 16/17] Resolve conflicts on all clients when one client resolves it --- package.json | 2 +- plugins/c9.ide.watcher/gui.js | 26 ++++++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 57480426..c66f7c61 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#6bda028b24", + "c9.ide.collab": "#c8cab470b1", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", diff --git a/plugins/c9.ide.watcher/gui.js b/plugins/c9.ide.watcher/gui.js index c82f0b98..96e4ec7c 100644 --- a/plugins/c9.ide.watcher/gui.js +++ b/plugins/c9.ide.watcher/gui.js @@ -154,6 +154,15 @@ define(function(require, exports, module) { } }); + collab.on("resolveConflict", function (e) { + var tab = tabManager.findTab(e.path); + if (tab) { + var doc = tab.document; + var path = tab.path + resolveConflict(doc, path); + } + }) + watcher.on("delete", function(e) { var tab = tabManager.findTab(e.path); if (tab) @@ -163,6 +172,12 @@ define(function(require, exports, module) { /***** Methods *****/ + function resolveConflict(doc, path) { + doc.tab.classList.remove("conflict"); + delete doc.meta.$merge; + delete changedPaths[path]; + } + function addChangedTab(tab, doubleCheckComparisonType) { // If we already have a dialog open, just update it, but mark the value dirty if (changedPaths[tab.path]) { @@ -178,6 +193,9 @@ define(function(require, exports, module) { return; } + var doc = tab.document; + var path = tab.path; + changedPaths[tab.path] = { tab: tab, resolve: resolve }; // If the terminal is currently focussed, lets wait until @@ -191,14 +209,10 @@ define(function(require, exports, module) { } function resolve() { - doc.tab.classList.remove("conflict"); - delete doc.meta.$merge; - delete changedPaths[path]; + collab.send({type: "RESOLVE_CONFLICT", data: {path: path}}); + resolveConflict(doc, path); } - var doc = tab.document; - var path = tab.path; - switch (doubleCheckComparisonType) { case comparisonType.TIMESTAMP_AND_CONTENTS: checkByStatOrContents(); From 4f06c24abc6625ed34c712160c56cb6e58b36b9f Mon Sep 17 00:00:00 2001 From: nightwing Date: Wed, 22 Jun 2016 02:48:14 +0400 Subject: [PATCH 17/17] use correct docId in resolveConflict --- package.json | 2 +- plugins/c9.ide.watcher/gui.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c66f7c61..9d5a36e1 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.language.javascript.infer": "#b9c2e4bdb8", "c9.ide.language.jsonalyzer": "#72954f8da1", "c9.ide.language.codeintel": "#4e0a272229", - "c9.ide.collab": "#c8cab470b1", + "c9.ide.collab": "#48b0eefd02", "c9.ide.local": "#9169fec157", "c9.ide.find": "#a2dfc3e306", "c9.ide.find.infiles": "#488db22ee1", diff --git a/plugins/c9.ide.watcher/gui.js b/plugins/c9.ide.watcher/gui.js index 96e4ec7c..011c7b4f 100644 --- a/plugins/c9.ide.watcher/gui.js +++ b/plugins/c9.ide.watcher/gui.js @@ -209,7 +209,7 @@ define(function(require, exports, module) { } function resolve() { - collab.send({type: "RESOLVE_CONFLICT", data: {path: path}}); + collab.send({type: "RESOLVE_CONFLICT", data: {docId: path}}); resolveConflict(doc, path); }