#!/bin/sh

FROM="$1"
TO="$2"

[ -z "$FROM" ] && exit -1
[ -z "$TO" ] && exit -1
[ -d "$TO" ] && exit -2

mkdir -p "$TO"
cp -al "$FROM/objects" "$TO/objects"
rm -f "$TO/objects/info"/*
rmdir "$TO/objects/info" 2> /dev/null > /dev/null
cp -a "$FROM/objects/info" "$TO/objects/" ||:
[ -d "$FROM/svn" ] && cp -a    $FROM/svn       	$TO/ ||:
[ -d "$FROM/remotes" ] && cp -a    $FROM/remotes   	$TO/ ||:
cp -a    $FROM/refs      	$TO/ ||:
cp -a    $FROM/info             $TO/ ||:
cp -a    $FROM/hooks            $TO/ ||:
cp -a    $FROM/branches         $TO/ ||:
cp -a    $FROM/packed-refs      $TO/ ||:
[ -d "$FROM/gear" ] && cp -a    $FROM/gear             $TO/ ||:
cp -a    $FROM/config           $TO/ ||:
cp -a    $FROM/description      $TO/ ||:
cp -a    $FROM/HEAD             $TO/ ||:


find "$TO" -type f -path '*.git/hooks/*.sample' -delete
mkdir -p "$TO/logs"

[ -d "$TO/refs" ] 	  && find "$TO/refs" -type d -empty -delete
[ -d "$TO/branches" ] && find "$TO/branches" -type d -empty -delete
# I don't want backup all versions of every branch after --amend
mkdir -p "$TO/refs" "$TO/branches" "$TO/logs"

exit 0
