Source Tree Workplaces over NFS
Arch puts a lot of data in the directory {arch} along with your project source. Besides that, a lot of temporary files are created in the same directories to execute commands like tla star-merge or tla changes.
Avoid NFS in this situation! It can make arch be 50 times slower or even more. Besides that, NFS changes the inode numbers of the files and can make tla not accept the pristine copies of the branch in the {arch} directory.
To avoid that, you can:
- use only local trees
- use tla remotely in the NFS server
Using a revision library
An important part of the content of the {arch} directory is pristine trees. These can be replaced by a (greedy) revision library located on a local disk (possibly even /tmp). This will both reduce the size of your working directory and speed up tla. With tla 1.2, revision libraries (and pristine trees) should not be placed on NFS servers, because the corruption-detection routines expect device ids to remain constant, and NFS device ids can change. This has been fixed, so this problem will not apply to tla 1.2.1.
Using tla remotely
Use a script like this one instead of the local tla to run the commands in the NFS server (for LINUX):
#!/bin/sh # convert current directory name from local to remote (nfs server) DIR=$(pwd -P | sed -n 's/^\/nfs_client_dir\//\/nfs_server_dir\//p') SERVER="nfs_server" SEPARATOR="^L" # Ctrl-V/Ctrl-L # not a mounted NFS filesystem? Run locally. if test "$DIR" = "" then exec /usr/bin/tla "$@" exit fi # how should be the remote environment? REMOTEENV="export EDITOR=vim;cd $DIR" # is my stdout a tty? If it is, force virtual tty in ssh for "vim" SSHOPT="" if tty -s <&1 then SSHOPT="-qt" fi # create a escaped ssh parameter list IFS="$SEPARATOR"; PARS="$*"; IFS="" RECOVERPARS='IFS="'"$SEPARATOR"'"; set -- $(echo "'"$PARS"'"); IFS=""' # run remote tla exec ssh $SSHOPT $SERVER "$REMOTEENV;$RECOVERPARS;"'tla $@'
Attention: the field separator $SEPARATOR should be defined with Ctrl-V/Ctrl-L, not with the characters ^ and L. It has to be something not used in any tla command, that's why you should use something strange like Form Feed. Good design! http://soft-toys.wyger.com http://soft-toys01.wyger.com http://parfume.wyger.com http://parfume01.wyger.com http://hotsources.wyger.com http://hotsouces01.wyger.com http://uniforms01.wyger.nl http://uniforms02.wyger.nl http://uniforms03.wyger.nl http://uniforms04.wyger.nl http://z00.wyger.com http://z01.wyger.com http://z02.wyger.com http://z03.wyger.com http://z04.wyger.com http://z05.wyger.com http://z06.wyger.com http://z07.wyger.com http://z08.wyger.com http://z09.wyger.com http://z10.wyger.com http://z11.wyger.com http://z12.wyger.com http://z13.wyger.com http://z14.wyger.com http://zt00.wyger.com http://zt01.wyger.com http://zt02.wyger.com http://zt03.wyger.com http://zt04.wyger.com http://zt05.wyger.com
