sapling/eden/scm/edenscm
Jun Wu 3eb2eb2257 importhelper: request restart for non-lazy -> lazy changelog migration
Summary:
If the repo changelog was migrated to lazy, existing processes including the
import helpers might start failing to resolve commits. Detect that, and request
a restart of the import helper.

An example traceback:

  edenscm.mercurial.error.RepoLookupError: unknown revision 'ce48ccc4197b2066a8c7f2a930cee89e8aea6379'
  2021-06-29 12:33:12,738 error processing command 4
  Traceback (most recent call last):
    File "edenscm/mercurial/commands/eden.py", line 363, in process_request
      cmd_function(req)
    File "edenscm/mercurial/commands/eden.py", line 604, in cmd_manifest_node_for_commit
      node = self.get_manifest_node(rev_name)
    File "edenscm/mercurial/commands/eden.py", line 821, in get_manifest_node
      return self._get_manifest_node_impl(rev)
    File "edenscm/mercurial/commands/eden.py", line 790, in _get_manifest_node_impl
      node_hash = ctx.manifestnode()
    File "edenscm/mercurial/context.py", line 569, in manifestnode
      return self._changeset.manifest
    File "edenscm/mercurial/util.py", line 987, in __get__
      result = self.func(obj)
    File "edenscm/mercurial/context.py", line 540, in _changeset
      return self._repo.changelog.changelogrevision(self._node)
    File "edenscm/mercurial/changelog2.py", line 374, in changelogrevision
      return changelogrevision(self.revision(nodeorrev))
    File "edenscm/mercurial/changelog2.py", line 463, in revision
      p1, p2 = self.parents(node)[:2]
    File "edenscm/mercurial/changelog2.py", line 610, in parents
      parents = list(self.dag.parentnames(node))
  error.CommitLookupError: '<int> cannot be found'

Reviewed By: andll

Differential Revision: D29470181

fbshipit-source-id: 40ad6eebe1f656c63d3f96b2b70ad60b350eed21
2021-06-29 16:47:49 -07:00
..
hgdemandimport Back out "log: backout D24293498 about prefetching commit data" 2020-11-06 16:25:00 -08:00
hgext localrepo: improve edenapi None error reporting 2021-06-29 15:46:00 -07:00
mercurial importhelper: request restart for non-lazy -> lazy changelog migration 2021-06-29 16:47:49 -07:00
__init__.py zipimport: workaroud pyc invalidation due to timezone settings 2021-05-24 09:36:37 -07:00
__main__.py edenscm: add a main module 2020-01-30 18:09:14 -08:00
hooks.py py3: fix conflictinfo compatibility 2020-09-01 18:31:35 -07:00
traceimport.py debugshell: improve "%trace" UX 2020-09-01 13:49:13 -07:00
tracing.py tracing: add isenabled 2021-04-21 09:25:49 -07:00