Download raw body.
Problem with got update?
Stefan Sperling <stsp@stsp.name> [2021-01-05, 22:38 +0100]: > On Tue, Jan 05, 2021 at 10:53:05PM +0200, Timo Myyrä wrote: > >> Stefan Sperling <stsp@stsp.name> [2021-01-04, 11:42 +0100]: >> >> > On Sun, Jan 03, 2021 at 10:13:07PM +0200, Timo Myyrä wrote: >> > >> >> Hi, >> >> >> >> While figuring out how to get single files contents at given commit I >> >> attempted to use update command. It seems to behave oddly when running >> >> repeatedly with same arguments. >> >> >> >> Is this expected? >> > >> > What did you expect instead? >> > >> >> Hmm, well looking at man page I would have expected either the just >> README.org be reverted to commit >> bf832809c3806e9b69db972abaa3d38fd427573e if straight file can be given >> as path argument. Or if file is not an valid path argument I would have >> expected some error or nothing happening. Now it would seem to ... >> delete one file from work tree after each invocation of the command >> which is the odd part. >> >> timo > > OK, I see it now, thank you! > I did not notice the mismatch between the path argument and the file > which was deleted. > > It looks like update -c with a path isn't covered by the test suite. > I have tried to add test coverage for this bug but I cannot trigger it. > My attempt is shown below. > > Could you try to write a script that triggers the bug, starting with > an empty repo? Or even add a test case to our test suite (which is > just a shell script)? > > In any case, thanks for pointing this out! :) > > diff 1255c02f3e117fa4fd07f9cc6fbcf62383755e5d /home/stsp/src/got > blob - a52e26753f5fdda870b159596d715fa7bae988c0 > file + regress/cmdline/update.sh > --- regress/cmdline/update.sh > +++ regress/cmdline/update.sh > @@ -1089,6 +1089,7 @@ test_update_conflict_wt_rm_vs_repo_rm() { > > test_update_partial() { > local testroot=`test_init update_partial` > + local base_commit=`git_show_head $testroot/repo` > > got checkout $testroot/repo $testroot/wt > /dev/null > ret="$?" > @@ -1156,6 +1157,29 @@ test_update_partial() { > return 1 > fi > > + echo "U alpha" > $testroot/stdout.expected > + echo "Updated to commit $base_commit" >> $testroot/stdout.expected > + > + (cd $testroot/wt && got update -c $base_commit alpha > $testroot/stdout) > + > + cmp -s $testroot/stdout.expected $testroot/stdout > + ret="$?" > + if [ "$ret" != "0" ]; then > + diff -u $testroot/stdout.expected $testroot/stdout > + test_done "$testroot" "$ret" > + return 1 > + fi > + > + echo "alpha" > $testroot/content.expected > + cat $testroot/wt/alpha > $testroot/content > + > + cmp -s $testroot/content.expected $testroot/content > + ret="$?" > + if [ "$ret" != "0" ]; then > + diff -u $testroot/content.expected $testroot/content > + test_done "$testroot" "$ret" > + return 1 > + fi > test_done "$testroot" "$ret" > } > > > I'm not sure what the end result should be with the command. I can repro it with: ``` git clone --bare git@github.com:zmyrgel/dotfiles.git got checkout dotfiles.git dotfiles-got cd dotfiles-got got update -c bf832809c3806e9b69db972abaa3d38fd427573e README.org ``` I checked that it loops the files with both default git repository and bare git repository. timo >> >> >> tmy@asteroid dotfiles $ got update -c bf832809c3806e9b69db972abaa3d38fd427573e README.org >> >> D .abclrc >> >> Updated to commit bf832809c3806e9b69db972abaa3d38fd427573e >> >> tmy@asteroid dotfiles $ got update -c bf832809c3806e9b69db972abaa3d38fd427573e README.org >> >> D .clisprc >> >> Updated to commit bf832809c3806e9b69db972abaa3d38fd427573e >> >> tmy@asteroid dotfiles $ got update -c bf832809c3806e9b69db972abaa3d38fd427573e README.org >> >> D .config/conky/scripts/conky_lua_scripts.lua >> >> Updated to commit bf832809c3806e9b69db972abaa3d38fd427573e >> >> tmy@asteroid dotfiles $ got update -c bf832809c3806e9b69db972abaa3d38fd427573e README.org >> >> D .config/fbpanel/default >> >> Updated to commit bf832809c3806e9b69db972abaa3d38fd427573e >> >> tmy@asteroid dotfiles $ got update -c bf832809c3806e9b69db972abaa3d38fd427573e README.org >> >> D .config/fontconfig/fonts.conf >> >> Updated to commit bf832809c3806e9b69db972abaa3d38fd427573e >> >> tmy@asteroid dotfiles $ >> >> >> >> But I found the got cat in the end so all is well. >> >> >> >> Timo >> >> >> >> >>
Problem with got update?