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