Mercurial > hg-stable
diff tests/test-convert-filemap.t @ 41180:69804c040a04
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.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 09 Jan 2019 16:02:05 -0500 |
parents | 77088fa862df |
children | 99ebde4fec99 |
line wrap: on
line diff
--- a/tests/test-convert-filemap.t Wed Jan 09 14:33:06 2019 -0500 +++ b/tests/test-convert-filemap.t Wed Jan 09 16:02:05 2019 -0500 @@ -435,6 +435,32 @@ | o 0 "addb" files: b +Include directives dropped empty commits, but other directives don't + + $ cat > branchpruning/exclude_filemap <<EOF + > exclude a + > EOF + $ hg convert --filemap branchpruning/exclude_filemap branchpruning branchpruning-hg-exclude + initializing destination branchpruning-hg-exclude repository + scanning source... + sorting... + converting... + 5 adda + 4 closefoo + 3 emptybranch + 2 closeempty + 1 addb + 0 closedefault + + $ glog -R branchpruning-hg-exclude + _ 3 "closedefault" files: + | + o 2 "addb" files: b + + _ 1 "closeempty" files: + | + o 0 "emptybranch" files: + Test rebuilding of map with unknown revisions in shamap - it used to crash