chiark / gitweb /
Documentation and webpage updates
[adns.git] / convert
diff --git a/convert b/convert
index 2bcace4..a0f4e8f 100755 (executable)
--- a/convert
+++ b/convert
@@ -37,22 +37,13 @@ abandondatedbranch () {
        abandonbranch branch-$date-$olddesc abandon.$date.$newdesc
        ensurenotag branchpoint-$date-$olddesc master
 }
-
-abandonbranch branch-rrtypenoenum abandon.1998-10-04.rrtypenoenum
-abandondatedbranch 1999-04-10 mthread multithread
-abandondatedbranch 1999-04-11 ipv6
-abandondatedbranch 1999-04-11 pollfds
-
-abandondatedbranch 2000-05-07 ipv6
-abandonbranch branch-0-7-inftodebug abandon.2000-03-26.infotodebug-0.7
-
 graftmergein () {
        local desc=$1
        local mergecommit=$2
        local branchname=branch-$desc
        mkdir -p .git/info
        local branchtip=`git rev-parse $branchname~0`
-       local oldparents=`git-log -n1 --pretty=format:%P $mergecommit`
+       local oldparents=`git log -n1 --pretty=format:%P $mergecommit`
        cat <<END >>.git/info/grafts
 $2 $oldparents $branchtip
 END
@@ -61,8 +52,16 @@ END
        ensurenotag branchpoint-$desc
 }
 
+abandonbranch branch-rrtypenoenum abandon.1998-10-04.rrtypenoenum
+abandondatedbranch 1999-04-10 mthread multithread
+abandondatedbranch 1999-04-11 ipv6
+
+abandondatedbranch 2000-05-07 ipv6
+abandonbranch branch-0-7-inftodebug abandon.2000-03-26.infotodebug-0.7
+
 graftmergein logcallbackfn 741a795cdaa539b48f83afbc0ac8e471543b9bf6
 graftmergein 1999-05-09-gplvslgpl e7cf3a99e5829bf53a9f36e08769787a78261045
+graftmergein 1999-04-11-pollfds f889c99835eec14dacda4b18da0636911dcd8cbc
 
 xargs git tag -d <<END
 tochiark-1998-11-08
@@ -74,17 +73,24 @@ tochiark-1998-11-17
 fromchiark-1998-11-28
 END
 
-git checkout master
-scr=cvs-to-git-conversion-script
-cp $base/convert $scr
-git add $scr
-git commit -m "$scr: record the script
+(set -e
+ cd $base/script
+ if [ x"`git diff`" != x ]; then
+       git checkout master~0
+       git commit -a -m autocommit
+       git tag -f actual
+       git reset master
+       git checkout master
+ else
+       git tag -f actual
+ fi)
 
-Record the script we used to convert the CVS repo to git"
-git rm $scr
-git commit -m "$scr: delete the script
+git checkout master
+git fetch $base/script actual
+git merge -m 'CVS to git conversion
 
-We have in fact done the conversion and don't need the script any more."
+Record the scripts etc. we used (and their history) for posterity,
+by binding them into the history.' FETCH_HEAD
 
 git branch -d origin
 git tag cvs-to-git-conversion
@@ -93,8 +99,19 @@ cat >$tmp/msg-filter <<'FEND'
 perl -ne '
                $out .= $_;
        END {
+               if ($out =~ /\*\*\* empty log message/) {
+                       ($out = `git diff $ENV{GIT_COMMIT}^ $ENV{GIT_COMMIT} -- changelog`)
+                          =~ s/\A.*\n\@\@ /\@\@ /s;
+               }
+               if ($out !~ /\n.*\n/) {
+                       $out = `fmt <<'\''EOF'\''
+$out
+EOF
+`;
+               }
                if ($out =~ m/^\@\@/s &&
-                   $out =~ m/^(?:\+ )?[^\@ ].*\w.*$/m) {
+                   ($out =~ m/^\+(?!u?adns).*\w.*$/m ||
+                    $out =~ m/^\-(?!u?adns).*\w.*$/m)) {
                        print $&, "\n\n" or die $!;
                }
                print $out or die $!;
@@ -103,11 +120,11 @@ perl -ne '
 FEND
 chmod +x $tmp/msg-filter
 
-git-filter-branch --msg-filter $tmp/msg-filter \
-       `git-show-ref | awk '{print $2}'`
+git filter-branch --msg-filter $tmp/msg-filter \
+       `git show-ref | awk '{print $2}'`
 
-git-show-ref | awk '{print $2}' | grep '^refs/original/' \
-       | xargs -n1 git-update-ref -d
+git show-ref | awk '{print $2}' | grep '^refs/original/' \
+       | xargs -n1 git update-ref -d
 
 rm -rf $tmp/converted
 mkdir $tmp/converted