revlog: move file writing to a separate function
Moves the code that actually writes to a file to a separate function in
revlog.py. This allows extensions to intercept and use the data being written to
disk. For example, an extension might want to replicate these writes elsewhere.
When cloning the Mercurial repo on /dev/shm with --pull, I see about a 0.3% perf change.
It goes from 28.2 to 28.3 seconds.
$ "$TESTDIR/hghave" inotify || exit 80
$ hg init
$ touch a b
$ hg add a b
$ rm b
status without inotify
$ hg st
A a
! b
$ echo "[extensions]" >> $HGRCPATH
$ echo "inotify=" >> $HGRCPATH
inserve
$ hg inserve -d --pid-file=hg.pid 2>&1
$ cat hg.pid >> "$DAEMON_PIDS"
status
$ hg st
A a
! b
? hg.pid
$ sleep 1
Are we able to kill the service? if not, the service died on some error
$ "$TESTDIR/killdaemons.py" hg.pid