blob: 838731a93bd3e648c164f4b2c234279785e6f13b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#!/bin/bash
set -e
. tests/lib
t-tstunt-parsechangelog
chk1 () {
p=$1
v=$2
t-archive $p $v
}
chk2() {
t-git-none
rm -rf $p
t-dgit --no-rm-on-error clone $p
# And now we make an update using the same orig tarball, and
# check that the orig import is stable.
cd $p
git branch first-import
m='Commit for import check'
echo "$m" >>import-check
v=${v%-*}-99
dch -v $v -D unstable -m "$m"
git add import-check debian/changelog
git commit -m "$m"
t-dgit -wgf quilt-fixup
t-dgit -wgf build-source
# The resulting .dsc does not have a Dgit line (because dgit push
# puts that in). So we just shove it in the archive now
ln ../${p}_${v}.* $tmp/mirror/pool/main/
t-archive-query
t-dgit fetch
git branch first-2nd-import remotes/dgit/dgit/sid
t-git-next-date
git update-ref refs/remotes/dgit/dgit/sid first-import
t-dgit fetch
t-refs-same-start
t-ref-same refs/remotes/dgit/dgit/sid
t-ref-same refs/heads/first-2nd-import
for orig in ../${p}_${v%-*}.orig*.tar.*; do
tar -atf $orig | LC_ALL=C sort >../files.o
pfx=$(perl <../files.o -ne '
while (<>) {
m#^([^/]+/)# or exit 0;
$x //= $1;
$x eq $1 or exit 0;
}
print "$x\n";
')
perl -i~ -pe '
s#^\Q'"$pfx"'\E##;
$_="" if m/^$/ || m#/$#;
' ../files.o
orig=${orig#../}
pat="^Import ${orig//./\\.}\$"
t-refs-same-start
for start in first-import first-2nd-import; do
git log --pretty='tformat:%H' --grep "$pat" $start \
>../t.imp
test $(wc -l <../t.imp) = 1
imp=$(cat ../t.imp)
t-ref-same-val "$orig $start" "$imp"
done
git ls-tree -r --name-only "$t_ref_val:" \
| sort >../files.g
diff ../files.{o,g}
done
cd ..
}
chk() { chk1 "$@"; chk2; }
# 1.0 with diff
chk pari-extra 3-1
# 3.0 (quilt), multiple patches, multiple origs
chk example 1.0-1
# 3.0 (quilt), single-debian-patch, one orig
chk sunxi-tools 1.2-2.~~dgittest
mangle1 () {
rm -f ${1}_*
chk1 "$@"
cd $tmp/mirror/pool/main
dpkg-source -x ${p}_${v}.dsc td
orig=${p}_${v%-*}.orig.tar.gz
tar zxf $orig
rm $orig ${p}_${v}.*
cd $p
mkdir urk
echo urk >urk/urk
export GZIP=-1
}
mangle2 () {
cd ..
dpkg-source -b td
rm -rf $p td
cd $tmp
t-archive-none $p
t-archive-query
chk2
}
# 3.0 (quilt), multiple patches, tarbomb orig
mangle1 example 1.0-1
tar zvcf ../$orig *
mangle2
# 3.0 (quilt), multiple patches, tarbomb orig with dot
mangle1 example 1.0-1
tar zvcf ../$orig .
mangle2
echo done.
|