From 65d99c40e807daccdf85579f0bfe681b3ff9a7fa Mon Sep 17 00:00:00 2001 From: Julian Prein Date: Mon, 15 Sep 2025 13:37:37 +0200 Subject: [PATCH] git:cow: Keep relative path offset --- .config/zsh/autoload/git/git-checkout-worktree | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.config/zsh/autoload/git/git-checkout-worktree b/.config/zsh/autoload/git/git-checkout-worktree index 4abe954..424a097 100755 --- a/.config/zsh/autoload/git/git-checkout-worktree +++ b/.config/zsh/autoload/git/git-checkout-worktree @@ -31,7 +31,7 @@ emulate -L zsh -o err_return -o no_unset -local git_dir REPO_NAME WORKTREE_PATH +local git_dir cwd_offset REPO_NAME WORKTREE_PATH # Use the folder name of the main working tree to make calls from another # temporary working tree possible git_dir="${$(git rev-parse --git-dir):A}" @@ -53,7 +53,9 @@ trap ' return $errc ' INT QUIT TERM EXIT +cwd_offset="${${PWD#$(git rev-parse --show-toplevel)}#/}" pushd -q "$WORKTREE_PATH" +[[ ! -d $cwd_offset ]] || cd "$cwd_offset" "$SHELL" && errc=$? || errc=$? (( !errc )) || echo "shell exited with $errc"