diff -r 0a17cfbe5429 -r 2ab59ac06b76 contrib/chg/chg.c --- a/contrib/chg/chg.c Fri Feb 26 14:17:59 2016 +0000 +++ b/contrib/chg/chg.c Fri Feb 26 14:13:12 2016 +0000 @@ -227,6 +227,8 @@ memcpy(argv + baseargvsize, opts->args, sizeof(char *) * opts->argsize); argv[argsize - 1] = NULL; + if (putenv("CHGINTERNALMARK=") != 0) + abortmsg("failed to putenv (errno = %d)", errno); if (execvp(hgcmd, (char **)argv) < 0) abortmsg("failed to exec cmdserver (errno = %d)", errno); free(argv); @@ -490,6 +492,12 @@ if (getenv("CHGDEBUG")) enabledebugmsg(); + if (getenv("CHGINTERNALMARK")) + abortmsg("chg started by chg detected.\n" + "Please make sure ${HG:-hg} is not a symlink or " + "wrapper to chg. Alternatively, set $CHGHG to the " + "path of real hg."); + if (isunsupported(argc - 1, argv + 1)) execoriginalhg(argv);