{ coreutils, git, writeDashBin }: writeDashBin "git-preview" '' set -efu head_commit=$(${git}/bin/git log -1 --format=%H) merge_commit=$1; shift merge_message='Merge for git-preview' preview_dir=$(${coreutils}/bin/mktemp --tmpdir -d git-preview.XXXXXXXX) preview_name=$(${coreutils}/bin/basename "$preview_dir") ${git}/bin/git worktree add --detach -f "$preview_dir" 2>/dev/null ${git}/bin/git -C "$preview_dir" checkout -q "$head_commit" ${git}/bin/git -C "$preview_dir" merge \ ''${GIT_PREVIEW_MERGE_STRATEGY+-s "$GIT_PREVIEW_MERGE_STRATEGY"} \ -m "$merge_message" \ -q \ "$merge_commit" ${git}/bin/git -C "$preview_dir" diff "$head_commit.." "$@" ${coreutils}/bin/rm -fR "$preview_dir" ${coreutils}/bin/rm -R .git/worktrees/"$preview_name" ''