git/mergetools/p4merge
David Aguilar 950b5680bd mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder
Use $TMPDIR when creating the /dev/null placeholder for p4merge.
This prevents users from finding a seemingly random untracked file
in their worktree.

This is different than what mergetool does with $LOCAL and
$REMOTE because those files exist to aid users when resolving
merges.  p4merge's /dev/null placeholder is not helpful in that
situation so it is sensible to keep it out of the worktree.

Reported-by: Jeremy Morton <admin@game-point.net>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-12-26 18:13:15 -08:00

35 lines
578 B
Plaintext

diff_cmd () {
empty_file=
# p4merge does not like /dev/null
if test "/dev/null" = "$LOCAL"
then
LOCAL="$(create_empty_file)"
fi
if test "/dev/null" = "$REMOTE"
then
REMOTE="$(create_empty_file)"
fi
"$merge_tool_path" "$LOCAL" "$REMOTE"
if test -n "$empty_file"
then
rm -f "$empty_file"
fi
}
merge_cmd () {
touch "$BACKUP"
$base_present || >"$BASE"
"$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
check_unchanged
}
create_empty_file () {
empty_file="${TMPDIR:-/tmp}/git-difftool-p4merge-empty-file.$$"
>"$empty_file"
printf "$empty_file"
}