Download raw body.
expand keyword support to more commands
Omar Polo <op@omarpolo.com> wrote:
> On 2023/07/19 00:00:57 +1000, Mark Jamsek <mark@jamsek.com> wrote:
> > Here's the diff adding keyword support to 'got ref', I've rebased it and
> > the above diff you've already reviewed on top of main:
>
> ok for me with comments below addressed:
Jeez, I don't even know how I did that. I must've originally had a
different assignment that I changed and then repeatedly copied for those
commands. I know I've done a lot of yyp's in vim with these keyword
tests. In any case, thanks for the big save! I must really need to zzz.
Committed with your fixes! Thanks again, op, you're a lifesaver :)
> > --- regress/cmdline/ref.sh
> > +++ regress/cmdline/ref.sh
> > @@ -438,7 +438,86 @@ test_parseargs "$@"
> > test_done "$testroot" "$ret"
> > }
> >
> > +test_ref_commit_keywords() {
> > + local testroot=$(test_init ref_commit_keywords)
> > + local repo="$testroot/repo"
> > + local wt="$testroot/wt"
> > +
> > + got checkout "$repo" "$wt" > /dev/null
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + echo "checkout failed unexpectedly" >&2
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + for i in $(seq 8); do
> > + echo "alpha change $i" > "$wt/alpha"
> > +
> > + (cd "$wt" && got ci -m "commit number $i" > /dev/null)
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + echo "commit failed unexpectedly" >&2
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + set -- "$ids" "$(git_show_head $repo)"
> > + ids=$*
> > + done
> > +
> > + $(cd "$wt" && got ref -c:head:-4 refs/heads/head-4)
> ^^^
>
> it should be (cd ...) not $(cd ...). We're lucky that `got ref'
> doesn't write anything to stdout.
>
> I missed this in the previous review, but there were some already.
> copy-paste error likely. I've not checked whether we have this error
> already in the tree somewhere else.
>
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + echo "got ref command failed unexpectedly"
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + (cd "$wt" && got up -c head-4 > /dev/null)
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + echo "got checkout command failed unexpectedly"
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + $(cd "$wt" && got ref -c:base:+2 refs/heads/base+2)
>
> same here.
>
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + echo "got ref command failed unexpectedly"
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
>
> > [...]
>
> > --- regress/cmdline/cat.sh
> > +++ regress/cmdline/cat.sh
> > @@ -338,9 +338,107 @@ test_parseargs "$@"
> > test_done "$testroot" "$ret"
> > }
> >
> > +test_cat_commit_keywords() {
> > + local testroot=$(test_init cat_commit_keywords)
> > + local repo="$testroot/repo"
> > + local wt="$testroot/wt"
> > +
> > + # :base requires work tree
> > + echo "got: '-c :base' requires work tree" > "$testroot/stderr.expected"
> > + got cat -r "$repo" -c:base alpha 2> "$testroot/stderr"
> > + ret=$?
> > + if [ $ret -eq 0 ]; then
> > + echo "cat command succeeded unexpectedly" >&2
> > + test_done "$testroot" "1"
> > + return 1
> > + fi
> > +
> > + cmp -s "$testroot/stderr.expected" "$testroot/stderr"
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + diff -u "$testroot/stderr.expected" "$testroot/stderr"
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + got checkout "$repo" "$wt" > /dev/null
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + for i in $(seq 8); do
> > + echo "change $i" > "$wt/alpha"
> > + echo "delta $i" > "$wt/gamma/delta"
> > +
> > + (cd "$wt" && got ci -m "commit $i" > /dev/null)
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + echo "commit failed unexpectedly" >&2
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + local delta_id=$(got tree -r "$repo" -i gamma | \
> > + grep 'delta$' | cut -d' ' -f 1)
> > + set -- "$delta_ids" "$delta_id"
> > + delta_ids=$*
> > + done
> > +
> > + # cat blob by path
> > + echo "change 6" > "$testroot/stdout.expected"
> > + $(cd "$wt" && got cat -c:head:-2 alpha > "$testroot/stdout")
>
> here too.
>
> > + cmp -s "$testroot/stdout.expected" "$testroot/stdout"
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + diff -u "$testroot/stdout.expected" "$testroot/stdout"
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + # cat blob by path with -r repo
> > + echo "delta 7" > "$testroot/stdout.expected"
> > + got cat -r "$repo" -c:head:- gamma/delta > "$testroot/stdout"
> > + cmp -s "$testroot/stdout.expected" "$testroot/stdout"
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + diff -u "$testroot/stdout.expected" "$testroot/stdout"
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + # cat tree by path
> > + echo "$(pop_id 4 $delta_ids) 0100644 delta" > \
> > + "$testroot/stdout.expected"
> > + $(cd "$wt" && got cat -c:base:-4 gamma > "$testroot/stdout")
>
> likewise
>
> > + cmp -s "$testroot/stdout.expected" "$testroot/stdout"
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + diff -u "$testroot/stdout.expected" "$testroot/stdout"
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + # cat blob by path with -P
> > + echo "delta 4" > "$testroot/stdout.expected"
> > + $(cd "$wt" && got up -c:base:-8 > /dev/null)
> > + $(cd "$wt" && got cat -c:base:+4 -P gamma/delta > "$testroot/stdout")
>
> here too
>
> > + cmp -s "$testroot/stdout.expected" "$testroot/stdout"
> > + ret=$?
> > + if [ $ret -ne 0 ]; then
> > + diff -u "$testroot/stdout.expected" "$testroot/stdout"
> > + test_done "$testroot" "$ret"
> > + return 1
> > + fi
> > +
> > + test_done "$testroot" "$ret"
> > +}
> > +
> > test_parseargs "$@"
> > run_test test_cat_basic
> > run_test test_cat_path
> > run_test test_cat_submodule
> > run_test test_cat_submodule_of_same_repo
> > run_test test_cat_symlink
> > +run_test test_cat_commit_keywords
--
Mark Jamsek <https://bsdbox.org>
GPG: F2FF 13DE 6A06 C471 CA80 E6E2 2930 DC66 86EE CF68
expand keyword support to more commands