-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
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
Reactions are currently unavailable