inotify: raise correct error if server is already started in a deep repository
When path is too long to be an Unix socket address, we create a socket in a
temporary directory and link from the long path to the shorter one.
But checks in server code at startup were insufficient in this case, and used
to raise an unclear "tried linking .hg/inotify.sock to a temporary socket but
.hg/inotify.sock already exists"
$ "$TESTDIR/hghave" inotify || exit 80
$ hg init
$ echo "[extensions]" >> $HGRCPATH
$ echo "inotify=" >> $HGRCPATH
inserve
$ hg inserve -d --pid-file=hg.pid
$ cat hg.pid >> "$DAEMON_PIDS"
let the daemon finish its stuff
$ sleep 1
empty
$ hg debuginotify
directories being watched:
/
.hg/
$ mkdir a
$ sleep 1
only 'a
$ hg debuginotify
directories being watched:
/
.hg/
a/
$ rmdir a
$ sleep 1
empty again
$ hg debuginotify
directories being watched:
/
.hg/
$ kill `cat hg.pid`