gitbutler/crates/gitbutler-branch-actions/tests/fixtures/reorder.sh

114 lines
3.0 KiB
Bash

#!/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
}
git init remote
(cd remote
echo a > file
git add . && git commit -m "init"
)
export GITBUTLER_CLI_DATA_DIR=../user/gitbutler/app-data
git clone remote multiple-commits
(cd multiple-commits
git config user.name "Author"
git config user.email "author@example.com"
git branch existing-branch
$CLI project add --switch-to-workspace "$(git rev-parse --symbolic-full-name @{u})"
$CLI branch create --set-default other_stack
echo change0 >> other_file
$CLI branch commit other_stack -m "commit 0"
$CLI branch create --set-default my_stack
echo change1 >> file
$CLI branch commit my_stack -m "commit 1"
echo change2 >> file
$CLI branch commit my_stack -m "commit 2"
echo change3 >> file
$CLI branch commit my_stack -m "commit 3"
$CLI branch series my_stack -s "top-series"
echo change4 >> file
$CLI branch commit my_stack -m "commit 4"
echo change5 >> file
$CLI branch commit my_stack -m "commit 5"
echo change6 >> file
$CLI branch commit my_stack -m "commit 6"
)
git clone remote multiple-commits-small
(cd multiple-commits-small
git config user.name "Author"
git config user.email "author@example.com"
git branch existing-branch
$CLI project add --switch-to-workspace "$(git rev-parse --symbolic-full-name @{u})"
$CLI branch create --set-default other_stack
echo change0 >> other_file
$CLI branch commit other_stack -m "commit 0"
$CLI branch create --set-default my_stack
echo change1 >> file
$CLI branch commit my_stack -m "commit 1"
$CLI branch series my_stack -s "top-series"
echo change4 >> file
$CLI branch commit my_stack -m "commit 2"
)
git clone remote multiple-commits-empty-top
(cd multiple-commits-empty-top
git config user.name "Author"
git config user.email "author@example.com"
git branch existing-branch
$CLI project add --switch-to-workspace "$(git rev-parse --symbolic-full-name @{u})"
$CLI branch create --set-default other_stack
echo change0 >> other_file
$CLI branch commit other_stack -m "commit 0"
$CLI branch create --set-default my_stack
echo change1 >> file
$CLI branch commit my_stack -m "commit 1"
$CLI branch series my_stack -s "top-series"
)
git clone remote overlapping-commits
tick
(cd overlapping-commits
git config user.name "Author"
git config user.email "author@example.com"
git branch existing-branch
$CLI project add --switch-to-workspace "$(git rev-parse --symbolic-full-name @{u})"
$CLI branch create --set-default other_stack
echo change0 >> other_file
$CLI branch commit other_stack -m "commit 0"
$CLI branch create --set-default my_stack
echo x > file
$CLI branch commit my_stack -m "commit 1"
tick
echo y > file
$CLI branch commit my_stack -m "commit 2"
$CLI branch series my_stack -s "top-series"
)