84 lines · 1.9 KB · Shell
RawDownload
# Must be sourced into the main journey test function set-static-git-environment() {  set -a  export GIT_AUTHOR_DATE="2020-09-09 09:06:03 +0800"  export GIT_COMMITTER_DATE="${GIT_AUTHOR_DATE}"  export GIT_AUTHOR_NAME="Sebastian Thiel"  export GIT_COMMITTER_NAME="${GIT_AUTHOR_NAME}"  export GIT_AUTHOR_EMAIL="git@example.com"  export GIT_COMMITTER_EMAIL="${GIT_AUTHOR_EMAIL}"  set +a} function remove-paths() {  sed -E 's#/.*#"#g'} function repo-with-remotes() {  if [[ $((($# - 1) % 2)) != 0 ]] || [[ $# = 0 ]]; then    echo "need <path> (<remote> <url>)[,...] tuples"    exit 42  fi   mkdir -p "$1"  (    cd "$1"    shift    git init    while [[ $# != 0 ]]; do        git remote add "$1" "$2"        shift 2    done    git config commit.gpgsign false    git config tag.gpgsign false    touch a    git add a    git commit -m "non-bare"  ) &>/dev/null} function small-repo-in-sandbox() {  sandbox  {    git init    git checkout -b main    git config commit.gpgsign false    git config tag.gpgsign false    touch a    git add a    git commit -m "first"    git tag unannotated    touch b    git add b    git commit -m "second"    git tag annotated -m "tag message"    git branch dev    echo hi >> b    git commit -am "third"  } &>/dev/null} function launch-git-daemon() {    local i git_daemon_url_file     git_daemon_url_file="$(mktemp -t git-daemon-url.XXXXXX)"    "$jtt" git-daemon "$git_daemon_url_file" &    daemon_pid=$!     for i in $(seq 1 50); do      if test -s "$git_daemon_url_file"; then        git_daemon_url="$(cat "$git_daemon_url_file")"        rm -f "$git_daemon_url_file"        trap 'kill "$daemon_pid" 2>/dev/null || true; wait "$daemon_pid" 2>/dev/null || true' EXIT        return      fi      sleep 0.1    done     kill "$daemon_pid" 2>/dev/null || true    wait "$daemon_pid" 2>/dev/null || true    rm -f "$git_daemon_url_file"    echo 1>&2 "failed to start git daemon"    exit 1}