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 () {