Merge pull request #5826 from overleaf/bg-use-resync-path
[document-updater] use paths from project structure update in resync GitOrigin-RevId: 6ed2a48da76553e2fe5d0d3ec8da535515a35110
This commit is contained in:
@@ -564,8 +564,8 @@ module.exports = DocumentManager = {
|
||||
)
|
||||
},
|
||||
|
||||
resyncDocContents(project_id, doc_id, callback) {
|
||||
logger.debug({ project_id, doc_id }, 'start resyncing doc contents')
|
||||
resyncDocContents(project_id, doc_id, path, callback) {
|
||||
logger.debug({ project_id, doc_id, path }, 'start resyncing doc contents')
|
||||
return RedisManager.getDoc(
|
||||
project_id,
|
||||
doc_id,
|
||||
@@ -573,7 +573,11 @@ module.exports = DocumentManager = {
|
||||
if (error != null) {
|
||||
return callback(error)
|
||||
}
|
||||
|
||||
// To avoid issues where the same doc_id appears with different paths,
|
||||
// we use the path from the resyncProjectStructure update. If we used
|
||||
// the path from the getDoc call to web then the two occurences of the
|
||||
// doc_id would map to the same path, and this would be rejected by
|
||||
// project-history as an unexpected resyncDocContent update.
|
||||
if (lines == null || version == null) {
|
||||
logger.debug(
|
||||
{ project_id, doc_id },
|
||||
@@ -604,7 +608,7 @@ module.exports = DocumentManager = {
|
||||
doc_id,
|
||||
lines,
|
||||
version,
|
||||
pathname,
|
||||
path, // use the path from the resyncProjectStructure update
|
||||
callback
|
||||
)
|
||||
}
|
||||
@@ -620,7 +624,7 @@ module.exports = DocumentManager = {
|
||||
doc_id,
|
||||
lines,
|
||||
version,
|
||||
pathname,
|
||||
path, // use the path from the resyncProjectStructure update
|
||||
callback
|
||||
)
|
||||
}
|
||||
@@ -768,7 +772,7 @@ module.exports = DocumentManager = {
|
||||
)
|
||||
},
|
||||
|
||||
resyncDocContentsWithLock(project_id, doc_id, callback) {
|
||||
resyncDocContentsWithLock(project_id, doc_id, path, callback) {
|
||||
if (callback == null) {
|
||||
callback = function () {}
|
||||
}
|
||||
@@ -777,6 +781,7 @@ module.exports = DocumentManager = {
|
||||
DocumentManager.resyncDocContents,
|
||||
project_id,
|
||||
doc_id,
|
||||
path,
|
||||
callback
|
||||
)
|
||||
},
|
||||
|
||||
@@ -242,8 +242,14 @@ module.exports = HistoryManager = {
|
||||
return callback(error)
|
||||
}
|
||||
const DocumentManager = require('./DocumentManager')
|
||||
const resyncDoc = (doc, cb) =>
|
||||
DocumentManager.resyncDocContentsWithLock(project_id, doc.doc, cb)
|
||||
const resyncDoc = (doc, cb) => {
|
||||
DocumentManager.resyncDocContentsWithLock(
|
||||
project_id,
|
||||
doc.doc,
|
||||
doc.path,
|
||||
cb
|
||||
)
|
||||
}
|
||||
return async.eachLimit(
|
||||
docs,
|
||||
HistoryManager.MAX_PARALLEL_REQUESTS,
|
||||
|
||||
Reference in New Issue
Block a user