largefiles: always create the cache and standin directories when cloning
The standin matcher only works if the .hglf directory exists (and it won't exist
if 'clone -U' is used, unless --all-largefiles is also specified). Since not
even 'update -r null' will get rid of the standin directory, this ensures that
the standin directory always exists if the repo has the 'largefiles'
requirement. This requirement is only set after a largefile is committed, so
these directories will not be created for repos that have the extension enabled
but have not committed a largefile.
With the standin directory in place, 'lfconvert --to-normal' will now be able to
download the required largefiles when converting a repo that was created with
'clone -U', and whose files are not in the usercache.
The downloadlfiles command could probably be put inside the 'largefiles'
requirement conditional too, but given that the user specified --all-largefiles,
there is likely an expectation to print out the number of largefiles downloaded,
even if it is 0.
$ "$TESTDIR/hghave" inotify || exit 80
$ hg init
$ touch a
$ mkdir dir
$ touch dir/b
$ touch dir/c
$ echo "[extensions]" >> $HGRCPATH
$ echo "inotify=" >> $HGRCPATH
$ hg add dir/c
inserve
$ hg inserve -d --pid-file=hg.pid 2>&1
$ cat hg.pid >> "$DAEMON_PIDS"
$ hg st
A dir/c
? a
? dir/b
? hg.pid
moving dir out
$ mv dir ../tmp-test-inotify-issue1542
status
$ hg st
! dir/c
? a
? hg.pid
$ sleep 1
Are we able to kill the service? if not, the service died on some error
$ kill `cat hg.pid`