As far as I know, this isn't possible. Rather than add a bunch of code to workarround something that might not be possible, lets just halt and catch fire if it does. This might need to be removed before the change goes into master Signed-off-by: Calum McConnell <calumlikesapplepie@xxxxxxxxx> --- convert.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/convert.c b/convert.c index 5d64ccce57..df70c250b0 100644 --- a/convert.c +++ b/convert.c @@ -646,6 +646,11 @@ static int filter_buffer_or_fd(int in, int out, void *data) sq_quote_buf(&worktreePath, the_repository->worktree); dict[1].value = worktreePath.buf; + /* The results of a nonexistent worktree could be... weird. Lets avoid*/ + if(dict[1].value == NULL){ + BUG("There is no worktree for this worktree substitution"); + } + /* expand all %f or %w with the quoted path */ strbuf_expand(&cmd, params->cmd, strbuf_expand_dict_cb, &dict); strbuf_release(&filePath); -- 2.30.2