mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
ad6eb1928b
Summary: Not being able to prefetch draft parent trees should not be considered as a fatal error. This code path is causing trouble with narrow-heads clone: 1. Streaming clone. The client gets a changelog. 2. The client runs "pull" to get new commits. The prefetchdraftparents code path runs. 3. The client has stale remote names, and public() is lagging. `prefetchdraftparents` will try to fetch trees at the old master, but the repo is not configured properly. That causes a stacktrace like: $ /usr/bin/hg --config 'extensions.fsmonitor=!' clone --shallow -U --config 'ui.ssh=ssh -oControlMaster=no' --configfile /etc/mercurial/repo-specific/www.rc ssh://hg.fb.com/repo repo connected to hg.fb.com streaming all changes searching for changes adding commits adding manifests adding file changes added 1 commits with 0 changes to 0 files # <<<< No traceback if this says "0 commit". Traceback (most recent call last): File "edenscm/hgext/remotenames.py", line 1464, in exclonecmd orig(ui, *args, **opts) File "edenscm/hgext/remotefilelog/__init__.py", line 433, in cloneshallow orig(ui, repo, *args, **opts) File "edenscm/mercurial/commands/__init__.py", line 1615, in clone shareopts=shareopts, # shareopts = {'mode': 'identity'} File "edenscm/mercurial/hg.py", line 741, in clone exchange.pull(local, srcpeer, revs, streamclonerequested=stream) File "edenscm/mercurial/util.py", line 621, in __exit__ self.close() File "edenscm/mercurial/transaction.py", line 46, in _active return func(self, *args, **kwds) File "edenscm/mercurial/transaction.py", line 543, in close self._postclosecallback[cat](self) # cat = bin('6472616674706172656e74747265656665746368') File "edenscm/hgext/treemanifest/__init__.py", line 490, in _parenttreefetch self.prefetchtrees([c.manifestnode() for c in draftparents]) # c = <changectx b5ad643b3009> # draftparents = [<changectx b5ad643b3009>] File "edenscm/hgext/treemanifest/__init__.py", line 522, in prefetchtrees self._prefetchtrees("", mfnodes, basemfnodes, [], depth) # basemfnodes = [bin('a25f17018d7cd07f1f6bc3076f95c5980ba087a9')] # mfnodes = [bin('ad717aac7700e783a1d84f3330d13a7731a4726a')] File "edenscm/hgext/treemanifest/__init__.py", line 529, in _prefetchtrees fallbackpath = getfallbackpath(self) File "edenscm/hgext/treemanifest/__init__.py", line 2173, in getfallbackpath if util.safehasattr(repo, "fallbackpath"): File "edenscm/mercurial/util.py", line 190, in safehasattr return getattr(thing, attr, _notset) is not _notset # attr = 'fallbackpath' File "edenscm/mercurial/util.py", line 904, in __get__ result = self.func(obj) File "edenscm/hgext/remotefilelog/shallowrepo.py", line 42, in fallbackpath "no remotefilelog server " "configured - is your .hg/hgrc trusted?" Abort: no remotefilelog server configured - is your .hg/hgrc trusted? abort: no remotefilelog server configured - is your .hg/hgrc trusted? Fix it by making prefetchdraftparents non-fatal. This would hopefully unblock narrow-heads rollout. Reviewed By: xavierd Differential Revision: D19957251 fbshipit-source-id: e65bbe6bf422776effe49055f7332ec538177a41 |
||
---|---|---|
.. | ||
absorb | ||
amend | ||
commitcloud | ||
convert | ||
extlib | ||
fastannotate | ||
fsmonitor | ||
hgevents | ||
hggit | ||
highlight | ||
infinitepush | ||
lfs | ||
memcommit | ||
perfsuite | ||
pushrebase | ||
remotefilelog | ||
repogenerator | ||
snapshot | ||
treemanifest | ||
__init__.py | ||
arcdiff.py | ||
automv.py | ||
blackbox.py | ||
catnotate.py | ||
checkmessagehook.py | ||
checkserverbookmark.py | ||
chistedit.py | ||
churn.py | ||
cleanobsstore.py | ||
clienttelemetry.py | ||
clindex.py | ||
clindex.pyx | ||
clonebundles.py | ||
commitextras.py | ||
conflictinfo.py | ||
copytrace.py | ||
crdump.py | ||
debugcommitmessage.py | ||
debugshell.py | ||
dialect.py | ||
directaccess.py | ||
dirsync.py | ||
disablesymlinks.py | ||
drop.py | ||
edrecord.py | ||
eol.py | ||
errorredirect.py | ||
extdiff.py | ||
extorder.py | ||
extutil.py | ||
fastlog.py | ||
fbhistedit.py | ||
fbscmquery.py | ||
fixcorrupt.py | ||
generic_bisect.py | ||
githelp.py | ||
gitlookup.py | ||
gitrevset.py | ||
globalrevs.py | ||
gpg.py | ||
grepdiff.py | ||
grpcheck.py | ||
hgsql.py | ||
hiddenerror.py | ||
histedit.py | ||
infinitepushbackup.py | ||
interactiveui.py | ||
journal.py | ||
linkrevcache.py | ||
logginghelper.py | ||
lz4revlog.py | ||
mergedriver.py | ||
morestatus.py | ||
myparent.py | ||
ownercheck.py | ||
patchrmdir.py | ||
patchrmdir.pyx | ||
phabdiff.py | ||
phabstatus.py | ||
phrevset.py | ||
progressfile.py | ||
pullcreatemarkers.py | ||
rage.py | ||
rebase.py | ||
remotenames.py | ||
reset.py | ||
sampling.py | ||
schemes.py | ||
sendunbundlereplay.py | ||
share.py | ||
shelve.py | ||
sigtrace.py | ||
simplecache.py | ||
smartlog.py | ||
sparse.py | ||
sshaskpass.py | ||
stablerev.py | ||
stat.py | ||
traceprof.py | ||
traceprof.pyx | ||
tweakdefaults.py | ||
undo.py | ||
whereami.py | ||
win32mbcs.py | ||
win32text.py |