annotate tests/test-lfs-bundle.t @ 48059:5d68c4eedd66

dirstate: move parent state handling in the dirstatemap This involves dirstatemap data mostly. Moving this one level down will remove the needs for the dirstatemap to expose some of its internals. This will help us to simplify more code further. Differential Revision: https://phab.mercurial-scm.org/D11505
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 22 Sep 2021 15:17:12 +0200
parents 3e381eb557f3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
44379
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
98
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
99 Hint if the cache location cannot be inferred from the environment
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
100
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
101 #if windows
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
102 $ unset LOCALAPPDATA
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
103 $ unset APPDATA
47071
3e381eb557f3 config: add --source option to include source of value
Martin von Zweigbergk <martinvonz@google.com>
parents: 44379
diff changeset
104 $ HGRCPATH= hg config lfs --source
44379
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
105 abort: unknown lfs usercache location
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
106 (define LOCALAPPDATA or APPDATA in the environment, or set lfs.usercache)
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
107 [255]
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
108 #endif
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
109
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
110 #if osx
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
111 $ unset HOME
47071
3e381eb557f3 config: add --source option to include source of value
Martin von Zweigbergk <martinvonz@google.com>
parents: 44379
diff changeset
112 $ HGRCPATH= hg config lfs --source
44379
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
113 abort: unknown lfs usercache location
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
114 (define HOME in the environment, or set lfs.usercache)
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
115 [255]
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
116 #endif
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
117
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
118 #if no-windows no-osx
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
119 $ unset XDG_CACHE_HOME
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
120 $ unset HOME
47071
3e381eb557f3 config: add --source option to include source of value
Martin von Zweigbergk <martinvonz@google.com>
parents: 44379
diff changeset
121 $ HGRCPATH= hg config lfs --source
44379
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
122 abort: unknown lfs usercache location
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
123 (define XDG_CACHE_HOME or HOME in the environment, or set lfs.usercache)
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
124 [255]
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
125 #endif
ca82929e433d lfutil: provide a hint if the largefiles/lfs cache path cannot be determined
Matt Harbison <matt_harbison@yahoo.com>
parents: 37439
diff changeset
126