David Aguilar <davvid@xxxxxxxxx> writes: >>> local_present && checkout_staged_file 2 "$MERGED" "$LOCAL" >>> remote_present && checkout_staged_file 3 "$MERGED" "$REMOTE" >> >> Sorry to be ping-pong-ing like this, but wouldn't we have a similar issue >> when LOCAL or REMOTE does not exist (e.g. "they modified, we removed")? > > Yes. I'll have a [PATCH v3] soon. It almost makes me wonder if the obviously simplest change to make checkout_staged_file create an empty file when the asked-for stage does not exist, i.e. checkout_stage () { if test -n "$1" then ... whatever checkout_staged_file() does ... else >"$4" fi } checkout_stage $base_mode 1 "$MERGED" "$BASE" checkout_stage $local_mode 2 "$MERGED" "$LOCAL" checkout_stage $remote_mode 3 "$MERGED" "$REMOTE" Or even: checkout_stage () { tmpfile=$(...) if test $? -eq 0 -a ... then mv -- "$(git rev-parse ...)" else >"$3" fi } checkout_stage 1 "$MERGED" "$BASE" checkout_stage 2 "$MERGED" "$LOCAL" checkout_stage 3 "$MERGED" "$REMOTE" as the current checkout_staged_file() does not seem to check errors in any meaningful way. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html