vcsh configuration to handle collisions of files common to distinct vcsh repositories using the sparse-checkout functionality of git. Based on John Whitley's setup at https://github.com/jwhitley/vcsh-root The patterns for the colliding files are in .config/vcsh/sparse-checkout and a pre-upgrade hook is used to make vcsh repositories use it. Many git commands (e.g. git-merge, git-checkout) will automatically use the information in $GIT_DIR/info/sparse-checkout when dealing with files in the git work directory, so generally a calling git-read-tree explicitly is not needed. However when the content of $GIT_DIR/info/sparse-checkout changes it is necessary to call "git read-tree -mu HEAD" to update the content of the working directory.