Most Significant Digit

Tuesday, October 13, 2009

Git on Dreamhost

Though my website is hosted on Dreamhost, these days I mostly use them for version control hosting. So I was very happy when they set up git on their servers.

Casper Fabricius' Keeping git repositories on Dreamhost using SSH has some instructions and a handy script for automating the process. Thing is, I tend to create the folders and files for a project before I set up the git repository. Casper's script assumes you want to create the folder and repository at the same time.

So here's my version of the script. If you call it without arguments, it assumes you want to make a repository for the current directory.

DREAMGIT_DOMAIN=user@yourdomain.com
if [ $# -lt 1 ]; then
PROJECT_DIR=${PWD##*/}
else
PROJECT_DIR=$1
mkdir $PROJECT_DIR
cd $PROJECT_DIR
fi
ssh $DREAMGIT_DOMAIN 'mkdir -p ~/git/'$PROJECT_DIR'.git && cd ~/git/'$PROJECT_DI$git init
git remote add origin ssh://$DREAMGIT_DOMAIN/~/git/$PROJECT_DIR.git
touch .gitignore
git add .
git commit -m 'Created new repo'
git push origin master
echo "
[branch \"master\"]
remote = origin
merge = refs/heads/master" >>.git/config
echo "Your new git repo '$PROJECT_DIR' is ready and initialized at
$DREAMGIT_DOMAIN/~/git/$PROJECT_DIR.git"


Note: both Casper's and my scripts still work if you call them with a directory that exists, e.g. dreamgit dir_that_exists. You'll see mkdir spout an error, but the rest will execute.

Labels: , ,