commit | 2c48013add547f757ae26ccb1c9a029ed196e077 | [log] [tgz] |
---|---|---|
author | Han-Wen Nienhuys <hanwen@google.com> | Tue Jul 19 14:36:38 2016 +0200 |
committer | Han-Wen Nienhuys <hanwen@google.com> | Wed Jul 20 14:43:50 2016 +0200 |
tree | 342e833c18937896709e284e97a486c64f382088 | |
parent | e297bfe4366808556f2a8f7c02d994bb2c4ac4f0 [diff] |
Persist workspace configuration across restarts. The manifests are stored under ~/.config/slothfs/manifests. This is a boon to people that restart slothfs often, such as its developers. It also guarantees that state survives machine reboots. Change-Id: I5faa074a55920de2c4992aca66f7319832f233b4
This is a FUSE filesystem that provides light-weight, lazily downloaded, read-only checkouts of Git repositories. It is intended for use with Android.
To start the file system:
go install github.com/google/slothfs/cmd/slothfs-multifs mkdir /tmp/mnt slothfs-multifs -gitiles https://android.googlesource.com/ /tmp/mnt &
To create a workspace “ws” corresponding to the latest manifest version
go install github.com/google/slothfs/cmd/slothfs-expand-manifest slothfs-expand-manifest --gitiles https://android.googlesource.com/ \ > /tmp/m.xml && ln -s /tmp/m.xml /tmp/mnt/config/ws
To populate a checkout
go install github.com/google/slothfs/cmd/slothfs-populate mkdir -p checkout/frameworks cd checkout/frameworks git clone https://android.googlesource.com/platform/frameworks/base cd ../ slothfs-populate -ro /tmp/mnt/ws .
The filesystem daemon uses an on-disk cache, which by default is stored under ~/.cache/slothfs
The FUSE file system clones repositories on-demand. You can avoid cloning altogether for repositories you know you don't need. This is configured through a JSON file.
For example, if you work on Android, and build on a Linux machine, you will never need the Darwin related prebuilts. You can avoid a costly clone for those by doing:
{"Repo": ".*darwin.*", "Clone": false}
Similarly, the build system system will read files (typically called ‘*.mk’) across the entire tree. When any .mk file is opened, this should not trigger a clone. This is achieved with the following entry
{"File": ".*mk$", "Clone": false}
Together, the following config.json
file is a good start for working on android:
[{"Repo": ".*darwin.*", "Clone": false}, {"File": ".*mk$", "Clone": false}]
A more elaborate configuration file is included as android.json
.
By default, slothfs loads the configuration from =$HOME/.config/slothfs/clone.json=.
This is not an official Google product.