#!/usr/bin/env bash

repo=$1
branch=$2
prefix=$3
flat=0

if test "$prefix" = "."; then
	prefix=$(mktemp -u 'git-merge-repo.XXXXXXX')
	flat=1
fi

git subtree add -P "$prefix" "$repo" "$branch" "${@:4}"

message=$(git log -1 --pretty=%B)

if test $flat -eq 1; then
	git stash -u
	mv -i "$prefix"/* ./
	git undo
	git add .
	git commit -am "$message"
	git stash apply
	rm -drf "$prefix"
fi
