Page MenuHomeSoftware Heritage

FUSE filesystem to navigate the archive
Closed, MigratedEdits Locked

Description

The title says it all, it would be very cool to have a way to "mount" a part of the archive as a local directory.

With FUSE and swh-graph this could actually be possible in the near future.

This task is to keep track/further develop the idea.

Revisions and Commits

rDFUSE FUSE virtual file system
D4200
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4064
D4042

Event Timeline

zack triaged this task as Wishlist priority.Jul 21 2019, 2:05 PM
zack created this task.

proposed CLI interface:

swh [ -C config.yml ] graph mount PID DIR

will mount the content of the given PID to the given local DIR.

The config file will be used to specify:

  • swh-graph API URL
  • swh-storage instance (optional, to lookup additional metadata like file names, commit messages, et.c)

What to list will depend on the PID type, an initial proposal looks like this:

  • cnt
    • file type: regular file
    • content: blob bytes
  • dir
    • file type: directory
    • content: one FS directory entry per entry in the graph
    • if storage is available the real entry names can be shown; if not PIDs will be used
  • rev
    • file type: directory (a-la /proc entries)
    • content: one dir entry root pointing to the root dir, plus a set of other dir entries for commit messages and other metadata (TODO to be further specified)
  • rel
    • file type: directory (a-la /proc entries)
    • content: one dir entry target pointing to the release object target
  • snp
    • file type: directory (a-la /proc entries)
    • content: one dir entry per branch, having (if storage is available) as name the branch name escaped (most notably to avoid / TODO or do we want to replicate branch names as local FS? it sounds both nice and confusing…) and as target the pointed object

Noting down that I had a tentative very preliminary implementation in the feature/fuse branch of swh-graph; see in particular fuse.py there.
It's probably no worth picking up and we should restart from scratch at this point, but might still contain useful material.
(The webclient in there has since become a proper thing, see T2279. So that part is definitely obsolete.)

zack raised the priority of this task from Wishlist to Normal.Sep 7 2020, 10:59 AM
haltode moved this task from Backlog to Done on the Software Heritage filesystem board.
gitlab-migration changed the status of subtask T2664: FUSE: add support for release objects from Resolved to Migrated.
gitlab-migration changed the status of subtask T2665: FUSE: add support for snapshot objects from Resolved to Migrated.