commitcloud: fix remote books sync

Summary:
Fixing bugs I've discovered by enabling remote bookmarks sync for myself:

* turned out, adding "None" to the dict field in Python doesn't work as a null-value of optional field in C++ Thrift structure

* I didn't update lastsyncstate in some of the cases, also fixing

Reviewed By: mitrandir77

Differential Revision: D16131799

fbshipit-source-id: bdee423f519820d702719b3dfe76865a7547221e
This commit is contained in:
Aida Getoeva 2019-07-08 01:48:55 -07:00 committed by Facebook Github Bot
parent 9636711893
commit 1e4f33a984
2 changed files with 6 additions and 1 deletions

View File

@ -182,7 +182,10 @@ class BaseService(object):
def appendremotebook(remotename, node=None):
remote, name = _splitremotename(remotename)
remotebookslist.append({"remote": remote, "name": name, "node": node})
remotebook = {"remote": remote, "name": name}
if node:
remotebook["node"] = node
remotebookslist.append(remotebook)
if type(remotebookmarks) is dict:
for remotename, node in remotebookmarks.items():

View File

@ -419,6 +419,7 @@ def _applycloudchanges(repo, remotepath, lastsyncstate, cloudrefs, maxage, state
omittedheads,
omittedbookmarks,
maxage,
newremotebookmarks,
)
# Also update backup state. These new heads are already backed up,
@ -700,6 +701,7 @@ def _checkomissions(repo, remotepath, lastsyncstate):
list(omittedheads),
list(omittedbookmarks),
lastsyncstate.maxage,
lastsyncstate.remotebookmarks,
)
if changes:
with repo.wlock(), repo.lock(), repo.transaction("cloudsync") as tr: