From 1e4f33a984cb46470d6880d49db2f4a31659b531 Mon Sep 17 00:00:00 2001 From: Aida Getoeva Date: Mon, 8 Jul 2019 01:48:55 -0700 Subject: [PATCH] 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 --- edenscm/hgext/commitcloud/baseservice.py | 5 ++++- edenscm/hgext/commitcloud/sync.py | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/edenscm/hgext/commitcloud/baseservice.py b/edenscm/hgext/commitcloud/baseservice.py index 6061c1ee9c..b58960e616 100644 --- a/edenscm/hgext/commitcloud/baseservice.py +++ b/edenscm/hgext/commitcloud/baseservice.py @@ -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(): diff --git a/edenscm/hgext/commitcloud/sync.py b/edenscm/hgext/commitcloud/sync.py index e761398cad..830147407a 100644 --- a/edenscm/hgext/commitcloud/sync.py +++ b/edenscm/hgext/commitcloud/sync.py @@ -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: