convert: don't drop commits that are empty in the source when using --filemap
I ran into this when using `hg lfconvert --to-normal` (which uses the filemap
class internally), and saw that commits with nothing but a branch change were
dropped. We could put in an option that only lfconvert uses internally. But
silently dropping anything other than a commit where all changes were excluded
seems unintended. For example, there's a message in mercurial_sink.putcommit()
if it drops an empty commit. (And the reason that isn't kicking in here is
because lfconvert isn't passing --filemap, so the self.filemapmode conditional
there is always False.)
The naive change of `return not files` broke test-convert-filemap.t, so this is
a little more elaborate than needed for converting from largefiles.
from __future__ import absolute_import
import os
if os.environ.get('COVERAGE_PROCESS_START'):
try:
import coverage
import uuid
covpath = os.path.join(os.environ['COVERAGE_DIR'],
'cov.%s' % uuid.uuid1())
cov = coverage.coverage(data_file=covpath, auto_data=True)
cov._warn_no_data = False
cov._warn_unimported_source = False
cov.start()
except ImportError:
pass