contrib/chg/chg.c
changeset 28261 2ab59ac06b76
parent 28260 0a17cfbe5429
child 28327 3ab370f84a23
--- 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);