diff --git a/hgext/remotefilelog/__init__.py b/hgext/remotefilelog/__init__.py --- a/hgext/remotefilelog/__init__.py +++ b/hgext/remotefilelog/__init__.py @@ -230,6 +230,7 @@ configitem(b'packs', b'maxchainlen', default=1000) configitem(b'devel', b'remotefilelog.ensurestart', default=False) +configitem(b'devel', b'remotefilelog.bg-wait', default=False) # default TTL limit is 30 days _defaultlimit = 60 * 60 * 24 * 30 diff --git a/hgext/remotefilelog/repack.py b/hgext/remotefilelog/repack.py --- a/hgext/remotefilelog/repack.py +++ b/hgext/remotefilelog/repack.py @@ -48,7 +48,13 @@ cmd.append(b'--packsonly') repo.ui.warn(msg) # We know this command will find a binary, so don't block on it starting. - procutil.runbgcommand(cmd, encoding.environ, ensurestart=ensurestart) + kwargs = {} + if repo.ui.configbool(b'devel', b'remotefilelog.bg-wait'): + kwargs['record_wait'] = repo.ui.atexit + + procutil.runbgcommand( + cmd, encoding.environ, ensurestart=ensurestart, **kwargs + ) def fullrepack(repo, options=None): diff --git a/hgext/remotefilelog/shallowrepo.py b/hgext/remotefilelog/shallowrepo.py --- a/hgext/remotefilelog/shallowrepo.py +++ b/hgext/remotefilelog/shallowrepo.py @@ -232,8 +232,12 @@ cmd += [b'-r', revs] # We know this command will find a binary, so don't block # on it starting. + kwargs = {} + if repo.ui.configbool(b'devel', b'remotefilelog.bg-wait'): + kwargs['record_wait'] = repo.ui.atexit + procutil.runbgcommand( - cmd, encoding.environ, ensurestart=ensurestart + cmd, encoding.environ, ensurestart=ensurestart, **kwargs ) def prefetch(self, revs, base=None, pats=None, opts=None):