D5449: pull: fix inconsistent view of bookmarks during pull (issue4700)

Yuya Nishihara yuya at tcha.org
Wed Dec 19 07:08:01 EST 2018


>                  revs = [] # actually, nodes
> +                if other.capable('lookupns'):
> +                    def lookupns(e, r):
> +                        return e.callcommand('lookupns', {'key': r}).result()
> +                else:
> +                    def lookupns(e, r):
> +                        return e.callcommand('lookup', {'key': r}).result(), ''
>                  for r in oldrevs:
>                      with other.commandexecutor() as e:
> -                        node = e.callcommand('lookup', {'key': r}).result()
> -
> +                        node, ns = lookupns(e, r)
> +                        if ns == 'bookmarks':
> +                            if r in remotebookmarks():
> +                                node = remotebookmarks()[r]

I'm not an expert, but I feel it's wrong to rely on client for data
consistency. Can't we somehow make the peer serve a "snapshot" of the
repository for the entire session? @indygreg Any updates in the v2 protocol
regarding this?


More information about the Mercurial-devel mailing list