Skip to content

Allow for hierarchical file structures within tagfs #46

Description

@mwatts15

Motivation

After some reflection, it seems apparent that a user may want to tag file structures that employ information hiding in combination with a tagging file system. As an example, many software packages have a concept of "projects" which consist of multiple files in a tree structure (e.g., Maven). This is a proposal to allow for tagging file hierarchies similarly to single files.

Criteria

Using '@' prefix to designate tags.

  • Hierarchical structures cannot contain tags -- they are terminals in the same way as single files.
  • "Regular" hierarchical directories should be the default to allow for seamless integration with preexisting structures by recursive copy.
  • Interactions within the hierarchical structure should mirror interactions with the underlying file system.
  • Renames of files within a hierarchy to outside the hierarchy should behave the same as if the file had all the tags of its containing hierarchy and was renamed from a path including only the tag components of the original rename source. Examples below:
    • rename("@taga/@tagb/@tagc/a/b/f", "@tagd/f") adds a new file "f" with tags "taga", "tagb", "tagc", "tagd"
    • rename("@taga/@tagb/@tagc/a/b/f", "@taga/f") adds a new file "f" with only tag "taga"
    • rename("@taga/@tagb/@tagc/a/b/f", "@taga/@tagz/f") adds a new file "f" with tags "taga", "tagb", "tagc", "tagz"
  • Renames of files outside of the hierarchy to inside of the hierarchy effectively deletes the source file and creates a file within the hierarchy having the same content and attributes. Whatever tags the file had are not added to the hierarchy.
  • Renames between hierarchies must not involve any changes to tagging
  • The command file system (used for issuing commands to tagfs) should still work within hierarchies
  • DBus file signals must not be sent for file manipulations within a hierarchy

Subtasks

  • Define a textual distinction between tag directories and regular directories
  • Update documentation to reflect the changed behavior
  • Write logic for renames between hiearchy/non-hierarchy

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions