3 base=$HOME/things/Adns/Cvs-Convert
9 if ! test -d $tmp/git-cvsi; then
12 git cvsimport -d `pwd`/cvs-repo -C tmp/git-cvsi.new -k -p --norc adns
13 mv tmp/git-cvsi.new tmp/git-cvsi
17 rsync -aH --delete git-cvsi/. adjust
21 local oldbranchname=$1
23 git tag $newtagname $oldbranchname
24 git branch -D $oldbranchname
28 # these two together unconditionally delete the tag if it exists
29 git tag -f $tagname master
32 abandondatedbranch () {
36 if [ "x$newdesc" = x ]; then newdesc=$olddesc; fi
37 abandonbranch branch-$date-$olddesc abandon.$date.$newdesc
38 ensurenotag branchpoint-$date-$olddesc master
43 local branchname=branch-$desc
45 local branchtip=`git rev-parse $branchname~0`
46 local oldparents=`git log -n1 --pretty=format:%P $mergecommit`
47 cat <<END >>.git/info/grafts
48 $2 $oldparents $branchtip
50 git branch -D $branchname
51 ensurenotag mergepoint-$desc
52 ensurenotag branchpoint-$desc
55 abandonbranch branch-rrtypenoenum abandon.1998-10-04.rrtypenoenum
56 abandondatedbranch 1999-04-10 mthread multithread
57 abandondatedbranch 1999-04-11 ipv6
59 abandondatedbranch 2000-05-07 ipv6
60 abandonbranch branch-0-7-inftodebug abandon.2000-03-26.infotodebug-0.7
62 graftmergein logcallbackfn 741a795cdaa539b48f83afbc0ac8e471543b9bf6
63 graftmergein 1999-05-09-gplvslgpl e7cf3a99e5829bf53a9f36e08769787a78261045
64 graftmergein 1999-04-11-pollfds f889c99835eec14dacda4b18da0636911dcd8cbc
66 xargs git tag -d <<END
77 scr=cvs-to-git-conversion-script
78 cp $base/script/convert $scr
80 git commit -m "$scr: record the script
82 Record the script we used to convert the CVS repo to git"
84 git commit -m "$scr: delete the script
86 We have in fact done the conversion and don't need the script any more."
89 git tag cvs-to-git-conversion
91 cat >$tmp/msg-filter <<'FEND'
95 if ($out =~ /\*\*\* empty log message/) {
96 ($out = `git diff $ENV{GIT_COMMIT}^ $ENV{GIT_COMMIT} -- changelog`)
97 =~ s/\A.*\n\@\@ /\@\@ /s;
99 if ($out !~ /\n.*\n/) {
100 $out = `fmt <<'\''EOF'\''
105 if ($out =~ m/^\@\@/s &&
106 ($out =~ m/^\+(?!u?adns).*\w.*$/m ||
107 $out =~ m/^\-(?!u?adns).*\w.*$/m)) {
108 print $&, "\n\n" or die $!;
110 print $out or die $!;
114 chmod +x $tmp/msg-filter
116 git filter-branch --msg-filter $tmp/msg-filter \
117 `git show-ref | awk '{print $2}'`
119 git show-ref | awk '{print $2}' | grep '^refs/original/' \
120 | xargs -n1 git update-ref -d
122 rm -rf $tmp/converted
126 git fetch -u $tmp/adjust 'refs/*:refs/*'