# HG changeset patch # User Nicolas Dumazet # Date 1258437600 -32400 # Node ID 2c2f7593ffc4604150b6ef0714dee7961f320917 # Parent b755a886e8b7d63369be9a3ec77307537bdacae2 cmdutil.service: do not _exit(0) in the parent process The fact that a parent process spawns a daemon does not necessarily means that it is the only think it has to do. This was forcing since 7c01599dd340 inotify processes launched implicitely to exit prematurely: when no inotify server was running, "hg st" for example would only launch a inotify server, _exit(0) and thus would not return file statuses. This changeset adds a test for implicitely launched inotify processes. Change to output of test-inotify-1208 is correct: it reflects the normal error message of "hg st" when not dying during "hg inserve" daemon creation. diff -r b755a886e8b7 -r 2c2f7593ffc4 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Thu Nov 19 17:33:41 2009 -0500 +++ b/mercurial/cmdutil.py Tue Nov 17 15:00:00 2009 +0900 @@ -571,7 +571,7 @@ if parentfn: return parentfn(pid) else: - os._exit(0) + return if initfn: initfn() diff -r b755a886e8b7 -r 2c2f7593ffc4 tests/test-inotify --- a/tests/test-inotify Thu Nov 19 17:33:41 2009 -0500 +++ b/tests/test-inotify Tue Nov 17 15:00:00 2009 +0900 @@ -2,7 +2,8 @@ "$TESTDIR/hghave" inotify || exit 80 -hg init +hg init repo1 +cd repo1 touch a b c d e mkdir dir @@ -10,10 +11,18 @@ touch dir/x dir/y dir/bar/foo hg ci -Am m +cd .. +hg clone repo1 repo2 echo "[extensions]" >> $HGRCPATH echo "inotify=" >> $HGRCPATH +cd repo2 +echo b >> a +# check that daemon started automatically works correctly +hg status + +cd ../repo1 echo % inserve hg inserve -d --pid-file=hg.pid cat hg.pid >> "$DAEMON_PIDS" diff -r b755a886e8b7 -r 2c2f7593ffc4 tests/test-inotify-issue1208.out --- a/tests/test-inotify-issue1208.out Thu Nov 19 17:33:41 2009 -0500 +++ b/tests/test-inotify-issue1208.out Tue Nov 17 15:00:00 2009 +0900 @@ -1,5 +1,6 @@ % fail abort: could not start server: File exists +could not talk to new inotify server: No such file or directory abort: could not start server: File exists % inserve % status diff -r b755a886e8b7 -r 2c2f7593ffc4 tests/test-inotify.out --- a/tests/test-inotify.out Thu Nov 19 17:33:41 2009 -0500 +++ b/tests/test-inotify.out Tue Nov 17 15:00:00 2009 +0900 @@ -6,6 +6,9 @@ adding dir/x adding dir/y adding e +updating to branch default +8 files updated, 0 files merged, 0 files removed, 0 files unresolved +M a % inserve ? hg.pid % clean