mercurial/cmdutil.py
changeset 28195 213c8cf02c49
parent 28194 7623ba92af72
child 28218 41dcd7545266
--- a/mercurial/cmdutil.py	Mon Feb 22 16:59:08 2016 +0000
+++ b/mercurial/cmdutil.py	Mon Feb 22 17:30:02 2016 +0000
@@ -765,7 +765,7 @@
         try:
             if not runargs:
                 runargs = util.hgcmd() + sys.argv[1:]
-            runargs.append('--daemon-postexec=%s' % lockpath)
+            runargs.append('--daemon-postexec=unlink:%s' % lockpath)
             # Don't pass --cwd to the child process, because we've already
             # changed directory.
             for i in xrange(1, len(runargs)):
@@ -799,12 +799,16 @@
         writepid(util.getpid())
 
     if opts['daemon_postexec']:
-        lockpath = opts['daemon_postexec']
+        inst = opts['daemon_postexec']
         try:
             os.setsid()
         except AttributeError:
             pass
-        os.unlink(lockpath)
+        if inst.startswith('unlink:'):
+            lockpath = inst[7:]
+            os.unlink(lockpath)
+        elif inst != 'none':
+            raise error.Abort(_('invalid value for --daemon-postexec'))
         util.hidewindow()
         sys.stdout.flush()
         sys.stderr.flush()