"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Martijn van Duren <openbsd+got@list.imperialat.at>
Subject:
got branch -d doesn't remove empty parent directory in reference
To:
Gameoftrees <gameoftrees@openbsd.org>
Date:
Sat, 12 Sep 2026 16:42:30 +0200

Download raw body.

Thread
  • Martijn van Duren:

    got branch -d doesn't remove empty parent directory in reference

martijn@

diff /home/martijn/src/got
path + /home/martijn/src/got
commit - f85c55bef56ccf3f41b8de4fc0482423541066c7
blob - 6b14508b86ae76b06c4b422f9dddcb726e665798
file + regress/cmdline/branch.sh
--- regress/cmdline/branch.sh
+++ regress/cmdline/branch.sh
@@ -672,6 +672,45 @@ test_branch_list_worktree_state() {
 	test_done "$testroot" "$ret"
 }
 
+test_branch_del_child_create_parent() {
+	local testroot=$(test_init branch_del_child_create_parent)
+	local wt="$testroot/wt"
+
+	set -- "$(git_show_head "$testroot/repo")"
+
+	got checkout "$testroot/repo" "$wt" > /dev/null
+	ret=$?
+	if [ $ret -ne 0 ]; then
+		echo "checkout failed unexpectedly" >&2
+		test_done "$testroot" "$ret"
+		return 1
+	fi
+
+	(cd "$wt" && got br -n a/b > /dev/null)
+	ret=$?
+	if [ $ret -ne 0 ]; then
+		echo "branch a/b failed unexpectedly" >&2
+		test_done "$testroot" "$ret"
+		return 1
+	fi
+	(cd "$wt" && got br -d a/b > /dev/null)
+	ret=$?
+	if [ $ret -ne 0 ]; then
+		echo "branch deletion a/b failed unexpectedly" >&2
+		test_done "$testroot" "$ret"
+		return 1
+	fi
+	(cd "$wt" && got br -n a > /dev/null)
+	ret=$?
+	if [ $ret -ne 0 ]; then
+		echo "branch a failed unexpectedly" >&2
+		test_done "$testroot" "$ret"
+		return 1
+	fi
+
+	test_done "$testroot" "$ret"
+}
+
 test_parseargs "$@"
 run_test test_branch_create
 run_test test_branch_list
@@ -682,3 +721,4 @@ run_test test_branch_show
 run_test test_branch_packed_ref_collision
 run_test test_branch_commit_keywords
 run_test test_branch_list_worktree_state
+run_test test_branch_del_child_create_parent