THESVEN

creator of stuffs for the interwebs

Recently the team I have been working with is starting to expand, and as this happens I have found my self introducing more and more people to the wonderful world of git. In order to try and ease the pain while people are getting used to a new version control system to help with creating new repositories on our server. In the office we are currently using git though webdav for a number of reason I won’t discuss in this post, so you will find that the script below is tailored to a situation where you can directly move a folder from your system to the server using the “mv” command (ie. the webdav directory is mounted in os x). Windows users will need to use this though cygwin. Below is version one of my script, I hope to work on it a bit more in the following days to make it a bit more user friendly. it can be run by opening terming and typing: ./MyScriptName.sh RepoName (replacing MyScriptName.sh with the name of the script, and RepoName with the desired name of your repository)

#!/bin/bash
 
#variables to change
#http path to your webdav folder eg. http://git.mydomain.com/repos/
GIT_SERVER=""
#relative path to your webdav folder eg. /Volumes/repos
WEB_DAV_DIRECTORY="/Volumes/proj_repos"
 
#DO NOT EDIT PAST THIS POINT
 
#variables set by parameters
REPO_NAME="$1"
TEMP_REPO_NAME="temp_repo"
 
#start of the script
mkdir $REPO_NAME
cd $REPO_NAME
git --bare init-db
git repo-config remote.origin.url "$GIT_SERVER$REPO_NAME"
git update-server-info
echo "repo created, moving to server"
 
cd "../"
mv "$PWD/$REPO_NAME" "$WEB_DAV_DIRECTORY"
mkdir "$TEMP_REPO_NAME"
cd "$TEMP_REPO_NAME"
touch "README"
git init
git add .
git commit -m "Initial commit, from creation script"
git repo-config remote.upload.url "$GIT_SERVER$REPO_NAME"
git push upload master
cd "../"
rm -rf "$TEMP_REPO_NAME"
echo "Finished ... Clone your repo to start working"