Hi Junio, On Thu, 14 Mar 2019, Junio C Hamano wrote: > "Johannes Schindelin via GitGitGadget" <gitgitgadget@xxxxxxxxx> > writes: > > > +test_expect_failure SHA1 'loose object cache vs re-reading todo list' ' > > + GIT_REBASE_TODO=.git/rebase-merge/git-rebase-todo && > > + export GIT_REBASE_TODO && > > + write_script append-todo.sh <<-\EOS && > > + # For values 5 and 6, this yields SHA-1s with the same first two digits > > + echo "pick $(git rev-parse --short \ > > + $(printf "%s\\n" \ > > + "tree $EMPTY_TREE" \ > > + "author A U Thor <author@xxxxxxxxxxx> $1 +0000" \ > > + "committer A U Thor <author@xxxxxxxxxxx> $1 +0000" \ > > + "" \ > > + "$1" | > > + git hash-object -t commit -w --stdin))" >>$GIT_REBASE_TODO > > In the generated append-todo.sh, as the <<EOS above is quoted, we > will see ">>$GIT_REBASE_TODO" literally (not the actual pathname > that begins with .git, but a reference to the variable). test-lint > may or may not catch it, but redirecting into variable reference > would trigger a(n arguably misguided) warning when run with some > versions of bash. Quoting > > echo ... >>"$GIT_REBASE_TODO" > > would work it around, of course. > > > + shift > > + test -z "$*" || > > + echo "exec $0 $*" >>$GIT_REBASE_TODO > > Likewise. Yep. As a rule of thumb, I should always quote variable expansions. Thanks, Dscho > > > + EOS > > + > > + git rebase HEAD -x "./append-todo.sh 5 6" > > +' > > + > > test_done >