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
graftmergein logcallbackfn 741a795cdaa539b48f83afbc0ac8e471543b9bf6
graftmergein 1999-05-09-gplvslgpl e7cf3a99e5829bf53a9f36e08769787a78261045
-graftmergein 1999-04-11 pollfds f889c99835eec14dacda4b18da0636911dcd8cbc
+graftmergein 1999-04-11-pollfds f889c99835eec14dacda4b18da0636911dcd8cbc
xargs git tag -d <<END
tochiark-1998-11-08
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
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 $!;
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