-git checkout gh-pages
-git checkout "$MASTER" -- devscripts/gh-pages/
-git reset devscripts/gh-pages/
-devscripts/gh-pages/add-version.py $version
-devscripts/gh-pages/sign-versions.py < updates_key.pem
-devscripts/gh-pages/generate-download.py
-devscripts/gh-pages/update-copyright.py
-rm -r test_coverage
-mv cover test_coverage
-git add *.html *.html.in update test_coverage
-git commit -m "release $version"
-git show HEAD
-read -p "Is it good, can I push? (y/n) " -n 1
-if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1; fi
-echo
-git push origin gh-pages
+git clone --branch gh-pages --single-branch . build/gh-pages
+ROOT=$(pwd)
+(
+ set -e
+ cd build/gh-pages
+ ORIGIN_URL=$(git config --get remote.origin.url)
+ "$ROOT/devscripts/gh-pages/add-version.py" $version
+ "$ROOT/devscripts/gh-pages/sign-versions.py" < updates_key.pem
+ "$ROOT/devscripts/gh-pages/generate-download.py"
+ "$ROOT/devscripts/gh-pages/update-copyright.py"
+ git add *.html *.html.in update
+ git commit -m "release $version"
+ git show HEAD
+ read -p "Is it good, can I push? (y/n) " -n 1
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1; fi
+ echo
+ git push $ORIGIN_URL gh-pages
+)
+rm -r build