bashcomplete: don't spew to stderr when not in a repo

When not in a repository, Git prints an error message when running
git-for-each-ref.  Silence this for shell completion by redirecting
stderr to /dev/null.

Signed-off-by: John Keeping <john@keeping.me.uk>
create: don't call "test" with invalid arguments

When we first create a new integration branch, there is no parent
commit, so $parent_tree is the empty string.  This means that "test" is
invoked as "test <new_tree> =" which is invalid.

There is no correctness impact here because the error is the same as the
comparison failing, but it does produce a scary error message from the
shell.  Add DQs around the variables in the call to "test" to suppress
this.

Signed-off-by: John Keeping <john@keeping.me.uk>
Merge branch 'fix-bashcomplete-not-in-repo'

Avoid an error message on stderr when using shell completion outside a
repository.

* fix-bashcomplete-not-in-repo:
  bashcomplete: don't spew to stderr when not in a repo
Merge branch 'remove-warning-on-create'

Suppress a shell error message that doesn't affect the code's behaviour
but is unnecessarily scary.

* remove-warning-on-create:
  create: don't call "test" with invalid arguments