ports/105813: devel/mercurial: hgmerge does not work
NIIMI Satoshi
sa2c at sa2c.net
Fri Nov 24 11:50:06 UTC 2006
>Number: 105813
>Category: ports
>Synopsis: devel/mercurial: hgmerge does not work
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Nov 24 11:50:04 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: NIIMI Satoshi
>Release: FreeBSD 6.1-RELEASE-p10 i386
>Organization:
>Environment:
System: FreeBSD berkeley.l.sa2c.net 6.1-RELEASE-p10 FreeBSD 6.1-RELEASE-p10 #17: Sun Oct 1 13:00:54 JST 2006 root at berkeley.l.sa2c.net:/usr/obj/usr/src/sys/GENERIC i386
>Description:
Unlike bash and ksh, FreeBSD's /bin/sh behaves:
| % sh -c 'type /nonexistent; echo $?'
| /nonexistent: No such file or directory
| 0
Because of above, testing "/Developer/.../FileMerge" and
"/usr/bin/test" always succeeds and they are used unconditionally.
>How-To-Repeat:
Run "hg merge" with clean ~/.hgrc and HGMERGE environment variable.
>Fix:
--- mercurial.diff begins here ---
--- devel/mercurial/Makefile Thu Nov 23 16:44:43 2006 +0000
+++ devel/mercurial/Makefile Fri Nov 24 05:55:36 2006 +0900
@@ -7,6 +7,7 @@
PORTNAME= mercurial
PORTVERSION= 0.9.1
+PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= http://www.selenic.com/mercurial/release/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ devel/mercurial/files/patch-hgmerge Fri Nov 24 05:48:06 2006 +0900
@@ -0,0 +1,63 @@
+--- hgmerge Tue Nov 21 23:08:29 2006 -0200
++++ hgmerge Fri Nov 24 05:27:38 2006 +0900
+@@ -20,6 +20,18 @@ if [ -z "$EDITOR" ]; then
+ if [ -z "$EDITOR" ]; then
+ EDITOR="vi"
+ fi
++
++isexecutable ()
++{
++ case "$1" in
++ */*)
++ [ -x "$1" ] && return 0 || return 1
++ ;;
++ *)
++ type "$1" >/dev/null 2>&1 && return 0 || return 1
++ ;;
++ esac
++}
+
+ # find decent versions of our utilities, insisting on the GNU versions where we
+ # need to
+@@ -28,13 +40,13 @@ DIFF="gdiff"
+ DIFF="gdiff"
+ PATCH="gpatch"
+
+-type "$MERGE" >/dev/null 2>&1 || MERGE=
+-type "$DIFF3" >/dev/null 2>&1 || DIFF3="diff3"
++isexecutable "$MERGE" || MERGE=
++isexecutable "$DIFF3" || DIFF3="diff3"
+ $DIFF3 --version >/dev/null 2>&1 || DIFF3=
+-type "$DIFF" >/dev/null 2>&1 || DIFF="diff"
+-type "$DIFF" >/dev/null 2>&1 || DIFF=
+-type "$PATCH" >/dev/null 2>&1 || PATCH="patch"
+-type "$PATCH" >/dev/null 2>&1 || PATCH=
++isexecutable "$DIFF" || DIFF="diff"
++isexecutable "$DIFF" || DIFF=
++isexecutable "$PATCH" || PATCH="patch"
++isexecutable "$PATCH" || PATCH=
+
+ # find optional visual utilities
+ FILEMERGE="/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge"
+@@ -42,15 +54,15 @@ TKDIFF="tkdiff"
+ TKDIFF="tkdiff"
+ MELD="meld"
+
+-type "$FILEMERGE" >/dev/null 2>&1 || FILEMERGE=
+-type "$KDIFF3" >/dev/null 2>&1 || KDIFF3=
+-type "$TKDIFF" >/dev/null 2>&1 || TKDIFF=
+-type "$MELD" >/dev/null 2>&1 || MELD=
++isexecutable "$FILEMERGE" || FILEMERGE=
++isexecutable "$KDIFF3" || KDIFF3=
++isexecutable "$TKDIFF" || TKDIFF=
++isexecutable "$MELD" || MELD=
+
+ # Hack for Solaris
+ TEST="/usr/bin/test"
+-type "$TEST" >/dev/null 2>&1 || TEST="/bin/test"
+-type "$TEST" >/dev/null 2>&1 || TEST="test"
++isexecutable "$TEST" || TEST="/bin/test"
++isexecutable "$TEST" || TEST="test"
+
+ # random part of names
+ RAND="$RANDOM$RANDOM"
--- mercurial.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list