mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
fix read order when retrieving diffs
This commit is contained in:
parent
911883a566
commit
4a6374efe8
1 changed files with 8 additions and 2 deletions
|
@ -5,9 +5,11 @@ logger = require "logger-sharelatex"
|
||||||
|
|
||||||
module.exports = DiffManager =
|
module.exports = DiffManager =
|
||||||
getLatestDocAndUpdates: (project_id, doc_id, fromVersion, toVersion, callback = (error, content, version, updates) ->) ->
|
getLatestDocAndUpdates: (project_id, doc_id, fromVersion, toVersion, callback = (error, content, version, updates) ->) ->
|
||||||
UpdatesManager.getDocUpdatesWithUserInfo project_id, doc_id, from: fromVersion, to: toVersion, (error, updates) ->
|
# retrieve the document before retreiving the updates,
|
||||||
|
# because updates are written to mongo after the document
|
||||||
|
DocumentUpdaterManager.getDocument project_id, doc_id, (error, content, version) ->
|
||||||
return callback(error) if error?
|
return callback(error) if error?
|
||||||
DocumentUpdaterManager.getDocument project_id, doc_id, (error, content, version) ->
|
UpdatesManager.getDocUpdatesWithUserInfo project_id, doc_id, from: fromVersion, to: toVersion, (error, updates) ->
|
||||||
return callback(error) if error?
|
return callback(error) if error?
|
||||||
callback(null, content, version, updates)
|
callback(null, content, version, updates)
|
||||||
|
|
||||||
|
@ -41,6 +43,10 @@ module.exports = DiffManager =
|
||||||
for u in updates when u.broken
|
for u in updates when u.broken
|
||||||
return callback new Error "broken-history"
|
return callback new Error "broken-history"
|
||||||
|
|
||||||
|
# discard any updates which are ahead of this document version
|
||||||
|
while updates[0]?.v >= version
|
||||||
|
updates.shift()
|
||||||
|
|
||||||
lastUpdate = updates[0]
|
lastUpdate = updates[0]
|
||||||
if lastUpdate? and lastUpdate.v != version - 1
|
if lastUpdate? and lastUpdate.v != version - 1
|
||||||
return callback new Error("latest update version, #{lastUpdate.v}, does not match doc version, #{version}")
|
return callback new Error("latest update version, #{lastUpdate.v}, does not match doc version, #{version}")
|
||||||
|
|
Loading…
Reference in a new issue