mergetools/p4merge: Handle "/dev/null"

p4merge does not properly handle the case where "/dev/null" is passed as a filename. Work it around by creating a temporary file for this purpose. 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> --- Needs to be amended with Tested-by when a report comes...

David Aguilar committed Oct 10, 2012 at 20:22 UTC 3facc60031a5b860cae8cb26957e5b4e80820c34
1 file changed +25
mergetools/p4merge
+25
@@ -1,5 +1,30 @@
1 diff_cmd () {
2 + # p4merge does not like /dev/null
3 + rm_local=
4 + rm_remote=
5 + if test "/dev/null" = "$LOCAL"
6 + then
7 + LOCAL="./p4merge-dev-null.LOCAL.$$"
8 + >"$LOCAL"
9 + rm_local=true
10 + fi
11 + if test "/dev/null" = "$REMOTE"
12 + then
13 + REMOTE="./p4merge-dev-null.REMOTE.$$"
14 + >"$REMOTE"
15 + rm_remote=true
16 + fi
17 +
18 "$merge_tool_path" "$LOCAL" "$REMOTE"
19 +
20 + if test -n "$rm_local"
21 + then
22 + rm -f "$LOCAL"
23 + fi
24 + if test -n "$rm_remote"
25 + then
26 + rm -f "$REMOTE"
27 + fi
28 }
29
30 merge_cmd () {