#!/bin/bash set -e require_clean_work_tree() { # test if working tree is dirty git rev-parse --verify HEAD > /dev/null && git update-index --refresh && git diff-files --quiet && git diff-index --cached --quiet HEAD || die "Working tree is dirty" } branch=master if [ $# = 1 ]; then repo=$1 elif [ $# = 2 ]; then repo=$1 branch=$2 else echo "usage: $0 [branch]" exit 1 fi if [ ! -r $repo/.git ]; then echo "The provided path $repo does not point to a git repository." exit 2 fi test -z "$(git rev-parse --show-cdup)" || { exit=$? echo >&2 "You need to run this command from the toplevel of the working tree." exit $exit } require_clean_work_tree url=`git --git-dir=$repo/.git config remote.origin.url` git ls-files src/3rdparty/harfbuzz | git update-index --force-remove --stdin git fetch $repo $branch commit=`git rev-parse FETCH_HEAD` tree=`git cat-file commit FETCH_HEAD|grep "^tree" | awk '{print $2}'` git read-tree --prefix=src/3rdparty/harfbuzz $tree git checkout src/3rdparty/harfbuzz git status cat >commitlog.txt <