blob: b733bd13ab96d1801db4e31d0cc01f1f7e890f4a (
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
|
#!/bin/sh
set -e
rcs="$1"
srcdir="$2"
repository="$3"
usage () {
echo "usage: ikiwiki-makerepo svn|git srcdir repository" >&2
echo " ikiwiki-makerepo bzr|mercurial srcdir" >&2
exit 1
}
if [ -z "$rcs" ] || [ -z "$srcdir" ]; then
usage
fi
if [ ! -d "$srcdir" ]; then
echo "srcdir $srcdir not found" >&2
exit 1
fi
if [ "$rcs" != mercurial ] && [ "$rcs" != bzr ]; then
if [ -z "$repository" ]; then
echo "you need to specify both a srcdir and a repository for $rcs" >&2
usage
fi
if [ -e "$repository" ]; then
echo "repository $repository already exists, aborting" >&2
exit 1
fi
repository="$(perl -e 'use Cwd q{abs_path}; $r=shift; $r=~s/\/*$//; print abs_path($r)' $repository)"
if [ -z "$repository" ]; then
echo "internal error finding repository abs_path" >&2
exit 1
fi
fi
echo "Importing $srcdir into $rcs"
case "$rcs" in
svn)
if [ -e "$srcdir/.svn" ]; then
echo "$srcdir already seems to be a svn working copy" >&2
exit 1
fi
svnadmin create "$repository"
svn mkdir "file://$repository/trunk" -m "create trunk directory"
cd "$srcdir"
svn co "file://$repository/trunk" .
svn propset svn:ignore ".ikiwiki" .
svn add *
svn commit -m "initial import"
echo "Directory $srcdir is now a checkout of $rcs repository $repository"
;;
git)
# There are better ways to do this, but this works with older
# versions of git.)
mkdir -p "$repository"
(cd "$repository" && git --bare init --shared)
cd "$srcdir"
git init
echo /.ikiwiki > .gitignore
echo /recentchanges >> .gitignore
git add .
git commit -m "initial commit"
git remote add origin "$repository"
git config branch.master.merge refs/heads/master
git config branch.master.remote origin
git push --all
echo "Directory $srcdir is now a clone of $rcs repository $repository"
;;
mercurial)
hg init "$srcdir"
cd "$srcdir"
echo .ikiwiki > .hgignore
hg add * .hgignore
hg commit -m "initial import"
echo "Directory $srcdir is now set up as a mercurial repository"
;;
bzr)
bzr init "$srcdir"
cd "$srcdir"
echo .ikiwiki > .bzrignore
bzr add * .bzrignore
bzr commit -m "initial import"
echo "Directory $srcdir is now set up as a bzr repository"
;;
*)
echo "Unsupported revision control system $rcs" >&2
usage
;;
esac
|