Mercurial > hg
annotate tests/test-lfs-bundle.t @ 44311:2b72c4ff8ed1
nodemap: use an intermediate "docket" file to carry small metadata
This intermediate file will make mmapping, transaction and content validation
easier. (Most of this usefulness will arrive gradually in later changeset). In
particular it will become very useful to append new data are the end of raw file
instead of rewriting on the file on each transaction.
See in code comments for details.
Differential Revision: https://phab.mercurial-scm.org/D7838
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 15 Jan 2020 15:47:50 +0100 |
parents | 556984ae0005 |
children | ca82929e433d |
rev | line source |
---|---|
36742
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
1 In this test, we want to test LFS bundle application on both LFS and non-LFS |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
2 repos. |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
3 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
4 To make it more interesting, the file revisions will contain hg filelog |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
5 metadata ('\1\n'). The bundle will have 1 file revision overlapping with the |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
6 destination repo. |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
7 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
8 # rev 1 2 3 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
9 # repo: yes yes no |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
10 # bundle: no (base) yes yes (deltabase: 2 if possible) |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
11 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
12 It is interesting because rev 2 could have been stored as LFS in the repo, and |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
13 non-LFS in the bundle; or vice-versa. |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
14 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
15 Init |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
16 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
17 $ cat >> $HGRCPATH << EOF |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
18 > [extensions] |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
19 > lfs= |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
20 > drawdag=$TESTDIR/drawdag.py |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
21 > [lfs] |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
22 > url=file:$TESTTMP/lfs-remote |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
23 > EOF |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
24 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
25 Helper functions |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
26 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
27 $ commitxy() { |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
28 > hg debugdrawdag "$@" <<'EOS' |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
29 > Y # Y/X=\1\nAAAA\nE\nF |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
30 > | # Y/Y=\1\nAAAA\nG\nH |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
31 > X # X/X=\1\nAAAA\nC\n |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
32 > # X/Y=\1\nAAAA\nD\n |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
33 > EOS |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
34 > } |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
35 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
36 $ commitz() { |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
37 > hg debugdrawdag "$@" <<'EOS' |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
38 > Z # Z/X=\1\nAAAA\nI\n |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
39 > | # Z/Y=\1\nAAAA\nJ\n |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
40 > | # Z/Z=\1\nZ |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
41 > Y |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
42 > EOS |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
43 > } |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
44 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
45 $ enablelfs() { |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
46 > cat >> .hg/hgrc <<EOF |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
47 > [lfs] |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
48 > track=all() |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
49 > EOF |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
50 > } |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
51 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
52 Generate bundles |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
53 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
54 $ for i in normal lfs; do |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
55 > NAME=src-$i |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
56 > hg init $TESTTMP/$NAME |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
57 > cd $TESTTMP/$NAME |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
58 > [ $i = lfs ] && enablelfs |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
59 > commitxy |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
60 > commitz |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
61 > hg bundle -q --base X -r Y+Z $TESTTMP/$NAME.bundle |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
62 > SRCNAMES="$SRCNAMES $NAME" |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
63 > done |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
64 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
65 Prepare destination repos |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
66 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
67 $ for i in normal lfs; do |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
68 > NAME=dst-$i |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
69 > hg init $TESTTMP/$NAME |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
70 > cd $TESTTMP/$NAME |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
71 > [ $i = lfs ] && enablelfs |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
72 > commitxy |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
73 > DSTNAMES="$DSTNAMES $NAME" |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
74 > done |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
75 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
76 Apply bundles |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
77 |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
78 $ for i in $SRCNAMES; do |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
79 > for j in $DSTNAMES; do |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
80 > echo ---- Applying $i.bundle to $j ---- |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
81 > cp -R $TESTTMP/$j $TESTTMP/tmp-$i-$j |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
82 > cd $TESTTMP/tmp-$i-$j |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
83 > if hg unbundle $TESTTMP/$i.bundle -q 2>/dev/null; then |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
84 > hg verify -q && echo OK |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
85 > else |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
86 > echo CRASHED |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
87 > fi |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
88 > done |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
89 > done |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
90 ---- Applying src-normal.bundle to dst-normal ---- |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
91 OK |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
92 ---- Applying src-normal.bundle to dst-lfs ---- |
36748
369aadf7a326
revlog: resolve lfs rawtext to vanilla rawtext before applying delta
Jun Wu <quark@fb.com>
parents:
36744
diff
changeset
|
93 OK |
36742
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
94 ---- Applying src-lfs.bundle to dst-normal ---- |
36743
d031609b3cb7
changegroup: do not delta lfs revisions
Jun Wu <quark@fb.com>
parents:
36742
diff
changeset
|
95 OK |
36742
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
96 ---- Applying src-lfs.bundle to dst-lfs ---- |
4e41b59633fa
lfs: add a test showing bundle application could be broken
Jun Wu <quark@fb.com>
parents:
diff
changeset
|
97 OK |