diff --git a/script/server b/script/server
index 4a0980a4cd8db67b6c2ef88d9a93c7c025c8625b..fdf1f23fd48fd317e6b09b255e1d3bdbe507528a 100755
--- a/script/server
+++ b/script/server
@@ -61,16 +61,29 @@ then
   fatal "config/diaspora.yml is missing! Copy over config/diaspora.yml.example to config/diaspora.yml and edit it properly!"
 fi
 
-# Check if detached head state
-if git status | grep 'Changes not staged for commit' > /dev/null ;
-then
-  warning "Your changes are not staged for commit. Kindly stash or commit them"
+command -v git > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+  # Check if git merge is in progress
+  if [ -f .git/MERGE_MODE ]; then
+    fatal "A git merge is in progress!"
+  fi
+
+  # Check if detached head state
+  git_branch_name="$(git symbolic-ref HEAD 2>/dev/null)"
+  if [ -z "$git_branch_name" ];
+  then
+    warning "You are in detached HEAD state!"
+  fi
 fi
 
-# Check if RVM available
-if rvm -v | grep 'No command '"'"'rvm'"'"' found' > /dev/null ;
-then
-  warning "RVM is not installed on the system. Please install it"
+# Do RVM checks if RVM is being used
+command -v rvm > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+  rvm_gemset="$(rvm current | cut -d"@" -f2)"
+  project_gemset="$(cat .ruby-gemset | tr -d " \t\n\r")"
+  if [ "$rvm_gemset" != "$project_gemset" ]; then
+    warning "Project gemset is $project_gemset but you are using $rvm_gemset"
+  fi
 fi
 
 # Check if bundle is complete
@@ -79,15 +92,6 @@ then
   fatal "Your bundle is not up to date, run the command \"bundle install\""
 fi
 
-# Check if database is migrated and correct gemset
-if rake db:migrate:status | grep 'down' > /dev/null ;
-then
-  warning "Your database is not migrated, run the command \"rake db:migrate\""
-elif rake db:migrate:status | grep 'rake aborted' > /dev/null ;
-then
-  warning "The gemset is not correct"
-fi
-
 # Setup environment
 if [ -z "$RAILS_ENV" ]
 then
@@ -133,8 +137,8 @@ if [ -w "public" -a ! -e  "public/source.tar.gz" ]
 then
   if command -v git > /dev/null 2>&1 && git rev-parse --is-inside-work-tree > /dev/null 2>&1
   then
-    branch=$(git branch | awk '/^[*]/ {print $2}')
-    tar czf public/source.tar.gz  $(git ls-tree -r $branch | awk '{print $4}')
+    commit_sha=$(git rev-parse HEAD)
+    tar czf public/source.tar.gz  $(git ls-tree -r $commit_sha | awk '{print $4}')
   else
     fatal "Can't generate public/source.tar.gz for you.
 Please tar up a copy of your Diaspora installation and place it there."