Test the format version upgrade code
[stgit] / t / t4000-upgrade / make-repo.sh
1 # This script makes several versions of a small test repository that
2 # can be used for testing the format version upgrade code.
3
4 LANG=C
5 LC_ALL=C
6 PAGER=cat
7 TZ=UTC
8 export LANG LC_ALL PAGER TZ
9 unset AUTHOR_DATE
10 unset AUTHOR_EMAIL
11 unset AUTHOR_NAME
12 unset COMMIT_AUTHOR_EMAIL
13 unset COMMIT_AUTHOR_NAME
14 unset GIT_ALTERNATE_OBJECT_DIRECTORIES
15 unset GIT_AUTHOR_DATE
16 GIT_AUTHOR_EMAIL=author@example.com
17 GIT_AUTHOR_NAME='A U Thor'
18 unset GIT_COMMITTER_DATE
19 GIT_COMMITTER_EMAIL=committer@example.com
20 GIT_COMMITTER_NAME='C O Mitter'
21 unset GIT_DIFF_OPTS
22 unset GIT_DIR
23 unset GIT_EXTERNAL_DIFF
24 unset GIT_INDEX_FILE
25 unset GIT_OBJECT_DIRECTORY
26 unset SHA1_FILE_DIRECTORIES
27 unset SHA1_FILE_DIRECTORY
28 export GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME
29 export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME
30
31 for ver in 0.12 0.8; do
32 if [ -e $ver.tar.gz ]; then continue; fi
33
34 # Get the required stgit version.
35 (
36 cd ../..
37 git archive --format=tar --prefix=stgit-$ver/ v$ver
38 ) | tar xf -
39
40 # Set up a repository.
41 mkdir $ver
42 cd $ver
43 git init
44 touch foo
45 git add foo
46 git commit -m 'Initial commit'
47
48 # Use the old stgit.
49 (
50 pwd
51 PATH=../stgit-$ver:$PATH
52
53 stg --version
54 stg init
55 echo 'cool branch' > .git/patches/master/description
56
57 for i in 0 1 2 3 4; do
58 stg new p$i -m "Patch $i"
59 echo "Line $i" >> foo
60 stg refresh
61 done
62 stg pop -n 2
63 )
64
65 # Reduce the number of small files.
66 git gc
67
68 # Make a tarball.
69 cd ..
70 tar zcf $ver.tar.gz $ver
71 done