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

From:
Stefan Sperling <stsp@stsp.name>
Subject:
Re: Got is unhappy with the FreeBSD repository
To:
Christian Weisgerber <naddy@mips.inka.de>
Cc:
gameoftrees@openbsd.org
Date:
Sun, 26 Feb 2023 12:20:47 +0100

Download raw body.

Thread
On Fri, Feb 24, 2023 at 09:19:15PM +0100, Christian Weisgerber wrote:
> Stefan Sperling:
> 
> > If someone could add an xfail regression test that triggers this stat
> > error then I will take a look at improving the behaviour when I find
> > some spare time. There are already a handful of tests in update.sh which
> > test behaviour in some tree conflict cases, but the above case (along with
> > many others) is still missing:
> 
> So the problem is much easier to reproduce than I expected.
> Here is a basic test:

Thanks. Please commit it with my OK. I will eventually get around to
making this behave in a better way. I suppose at the very least
got update should report an obstructed file rather than erroring out.

> diff /home/naddy/got
> commit - 1eb5d2a086f570f5bd47339ea2f7e477d9503422
> path + /home/naddy/got
> blob - c40836b609cfeffeedd9916e00ee56432e887ee5
> file + regress/cmdline/update.sh
> --- regress/cmdline/update.sh
> +++ regress/cmdline/update.sh
> @@ -636,6 +636,30 @@ test_update_merges_file_edits() {
>  	test_done "$testroot" "0"
>  }
>  
> +test_update_changes_file_to_dir() {
> +	local testroot=`test_init update_changes_file_to_dir`
> +
> +	got checkout $testroot/repo $testroot/wt > /dev/null
> +	ret=$?
> +	if [ $ret -ne 0 ]; then
> +		test_done "$testroot" "$ret"
> +		return 1
> +	fi
> +
> +	git_rm $testroot/repo alpha
> +	mkdir $testroot/repo/alpha
> +	echo eta > $testroot/repo/alpha/eta
> +	(cd $testroot/repo && git add alpha/eta)
> +	git_commit $testroot/repo -m "changed alpha into directory"
> +
> +	(cd $testroot/wt && got update > $testroot/stdout 2> $testroot/stderr)
> +	ret=$?
> +	if [ $ret -ne 0 ]; then
> +		ret="xfail change file into directory"
> +	fi
> +	test_done "$testroot" "$ret"
> +}
> +
>  test_update_merges_file_edits() {
>  	local testroot=`test_init update_merges_file_edits`
>  
> @@ -3088,6 +3112,7 @@ run_test test_update_merges_file_edits
>  run_test test_update_creates_missing_parent
>  run_test test_update_creates_missing_parent_with_subdir
>  run_test test_update_file_in_subsubdir
> +run_test test_update_changes_file_to_dir
>  run_test test_update_merges_file_edits
>  run_test test_update_keeps_xbit
>  run_test test_update_clears_xbit
> 
> -- 
> Christian "naddy" Weisgerber                          naddy@mips.inka.de
> 
>