[PATCH] convert: test clean p2 file missing

Mads Kiilerich mads at kiilerich.com
Fri Oct 23 19:18:02 CDT 2015


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1445644486 -7200
#      Sat Oct 24 01:54:46 2015 +0200
# Branch stable
# Node ID d6bf0a037c0783539daaab3e90ded59b2b2a6caf
# Parent  39dbf495880b8a439d912091109427d27a7e616a
convert: test clean p2 file missing

216fa1ba9993 introduced "clever" reuse of p2 but did that convert could fail
with
  abort: f1 at f73e02ae52c5: not found in manifest!
when it tried to reuse a file from p2 but the file didn't exist there, for
example because filemap changes.

5ca587348875 fixed that (using changes from a75d24539aba), but with a quite
different reasoning and test case.

Add another test that makes sure this case is covered too.

diff --git a/tests/test-convert-filemap.t b/tests/test-convert-filemap.t
--- a/tests/test-convert-filemap.t
+++ b/tests/test-convert-filemap.t
@@ -740,4 +740,49 @@ test converting merges into a repo that 
      - converted/a
      - toberemoved
   
+  $ cd ..
 
+
+Test case where cleanp2 contains a file that doesn't exist in p2 - for
+example because filemap changed.
+
+  $ hg init cleanp2
+  $ cd cleanp2
+  $ touch f f1 f2 && hg ci -Aqm '0'
+  $ echo f1 > f1 && echo >> f && hg ci -m '1'
+  $ hg up -qr0 && echo f2 > f2 && echo >> f && hg ci -qm '2'
+  $ echo "include f" > filemap
+  $ hg convert --filemap filemap .
+  assuming destination .-hg
+  initializing destination .-hg repository
+  scanning source...
+  sorting...
+  converting...
+  2 0
+  1 1
+  0 2
+  $ hg merge && hg ci -qm '3'
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+  $ echo "include ." > filemap
+  $ hg convert --filemap filemap .
+  assuming destination .-hg
+  scanning source...
+  sorting...
+  converting...
+  0 3
+  $ hg -R .-hg log -G -T '{shortest(node)} {desc}\n{files % "- {file}\n"}\n'
+  o    e9ed 3
+  |\
+  | o  33a0 2
+  | |  - f
+  | |
+  o |  f73e 1
+  |/   - f
+  |
+  o  d681 0
+     - f
+  
+  $ hg -R .-hg mani -r tip
+  f
+  $ cd ..


More information about the Mercurial-devel mailing list