builtin/push.c: use strbuf instead of manual allocation