2024-08-10 22:04:09 +03:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -eu -o pipefail
|
|
|
|
CLI=${1:?The first argument is the GitButler CLI}
|
|
|
|
|
|
|
|
function tick () {
|
|
|
|
if test -z "${tick+set}"; then
|
|
|
|
tick=1675176957
|
|
|
|
else
|
|
|
|
tick=$(($tick + 60))
|
|
|
|
fi
|
|
|
|
GIT_COMMITTER_DATE="$tick +0100"
|
|
|
|
GIT_AUTHOR_DATE="$tick +0100"
|
|
|
|
export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
|
|
|
|
}
|
|
|
|
tick
|
|
|
|
|
|
|
|
|
|
|
|
git init remote
|
|
|
|
(cd remote
|
|
|
|
echo first > file
|
|
|
|
git add . && git commit -m "init"
|
|
|
|
)
|
|
|
|
|
|
|
|
export GITBUTLER_CLI_DATA_DIR=../user/gitbutler/app-data
|
|
|
|
git clone remote complex-repo
|
|
|
|
(cd complex-repo
|
|
|
|
for round in $(seq 5); do
|
|
|
|
echo main >> file
|
|
|
|
git commit -am "main-$round"
|
|
|
|
done
|
|
|
|
|
|
|
|
local_tracking_ref="$(git rev-parse --symbolic-full-name @{u})";
|
|
|
|
|
|
|
|
git checkout -b feature main
|
|
|
|
for round in $(seq 100); do
|
|
|
|
echo feature >> file
|
|
|
|
git commit -am "feat-$round"
|
|
|
|
done
|
|
|
|
|
|
|
|
git checkout main
|
2024-08-28 14:06:28 +03:00
|
|
|
$CLI project add --switch-to-workspace "$local_tracking_ref"
|
2024-08-10 22:04:09 +03:00
|
|
|
for round in $(seq 10); do
|
|
|
|
echo virtual-main >> file
|
|
|
|
$CLI branch commit --message "virt-$round" main
|
|
|
|
done
|
|
|
|
|
|
|
|
git checkout -b non-virtual-feature main
|
|
|
|
for round in $(seq 50); do
|
|
|
|
echo non-virtual-feature >> file
|
|
|
|
git commit -am "non-virtual-feat-$round"
|
|
|
|
done
|
2024-08-11 21:40:41 +03:00
|
|
|
|
|
|
|
# pretend the remote is at the same state as our local `main`
|
|
|
|
git update-ref refs/remotes/origin/main main
|
2024-08-10 22:04:09 +03:00
|
|
|
)
|