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

From:
Mikhail <mp39590@gmail.com>
Subject:
Re: got: rm * removes current directory
To:
gameoftrees@openbsd.org
Date:
Sat, 27 May 2023 11:03:17 +0300

Download raw body.

Thread
On Sat, May 27, 2023 at 10:58:41AM +0300, Mikhail wrote:
> core:~/work/got$ cd got
> core:~/work/got/got$ ls
> Makefile          git-repository.5  got-worktree.5    got.1
> got.c             got.conf.5
> core:~/work/got/got$ got rm *
> D  got/Makefile
> D  got/git-repository.5
> D  got/got-worktree.5
> D  got/got.1
> D  got/got.c
> D  got/got.conf.5
> core:~/work/got/got$ ls
> colorls: .: No such file or directory
> core:~/work/got/got$ cd ..
> core:~/work/got$ ls got
> colorls: got: No such file or directory
> 
> git rm * removes only files, not current directory
> 
> in case this is a bug here is a test case:

now "wt" instead of "tw":

diff /home/misha/work/got
commit - 77fc0a255189c6c18e1ea0d6ea82ae1d0ddb4ea7
path + /home/misha/work/got
blob - 6d656a615120185ccc425dcf94d85399757b7de5
file + regress/cmdline/rm.sh
--- regress/cmdline/rm.sh
+++ regress/cmdline/rm.sh
@@ -689,7 +689,27 @@ test_rm_nonexistent_directory() {
 	test_done "$testroot" "$ret"
 }
 
+test_rm_asterisk() {
+	local testroot=`test_init rm_asterisk`
 
+	got checkout $testroot/repo $testroot/wt > /dev/null
+	ret=$?
+	if [ $ret -ne 0 ]; then
+		test_done "$testroot" "$ret"
+		return 1
+	fi
+
+	(cd $testroot/wt/epsilon && got rm * > /dev/null)
+
+	if [ ! -e $testroot/wt/epsilon ]; then
+		echo "epsilon directory doesn't exist" >&2
+		test_done "$testroot" "1"
+		return 1
+	fi
+
+	test_done "$testroot" "0"
+}
+
 test_parseargs "$@"
 run_test test_rm_basic
 run_test test_rm_with_local_mods
@@ -701,3 +721,4 @@ run_test test_rm_nonexistent_directory
 run_test test_rm_symlink
 run_test test_rm_status_code
 run_test test_rm_nonexistent_directory
+run_test test_rm_asterisk