From: Stefan Sperling Subject: Re: Got is unhappy with the FreeBSD repository To: Christian Weisgerber Cc: gameoftrees@openbsd.org Date: Sun, 26 Feb 2023 12:20:47 +0100 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 > >