tests/test-generaldelta.t
author Wojciech Lopata <lopek@fb.com>
Fri, 20 Sep 2013 10:45:51 -0700
branchstable
changeset 19764 e92650e39f1c
child 19784 4d2bea6604d3
permissions -rwxr-xr-x
generaldelta: initialize basecache properly Previously basecache was incorrectly initialized before adding the first revision from a changegroup. Basecache value influences when full revisions are stored in revlog (when using generaldelta). As a result it was possible to generate a generaldelta-revlog that could be bigger by arbitrary factor than its non-generaldelta equivalent.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19764
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     1
Check whether size of generaldelta revlog is not bigger than its
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     2
regular equivalent. Test would fail if generaldelta was naive
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     3
implementation of parentdelta: third manifest revision would be fully
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     4
inserted due to big distance from its paren revision (zero).
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     5
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     6
  $ hg init repo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     7
  $ cd repo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     8
  $ echo foo > foo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     9
  $ echo bar > bar
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    10
  $ hg commit -q -Am boo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    11
  $ hg clone --pull . ../gdrepo -q --config format.generaldelta=yes
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    12
  $ for r in 1 2 3; do
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    13
  >   echo $r > foo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    14
  >   hg commit -q -m $r
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    15
  >   hg up -q -r 0
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    16
  >   hg pull . -q -r $r -R ../gdrepo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    17
  > done
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    18
  $ cd ..
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    19
  $ regsize=`du -s -b repo/.hg/store/00manifest.i | cut -f 1`
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    20
  $ gdsize=`du -s -b gdrepo/.hg/store/00manifest.i | cut -f 1`
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    21
  $ if ((regsize < gdsize)); then
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    22
  >   echo 'generaldelta increased size of a revlog!'
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    23
  > fi