nextcloud / nextcloud/server

File versioning priority

Open
#53,636 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement feature: versions
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are interested into the same feature.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Is your feature request related to a problem? Please describe.
The file versioning feature/app as it is implemented is somewhat opaque for both users and admins. It's a must-have in most setups, and the zero-configuration aspect is convenient, but has one major drawback:

A user running low on quota has no control over what versions are kept. If they have, for example, large, low-importance zip archives getting updated regularly taking up major swaths of space and some much more important configuration files similarly updated often then the space taken up by the zip archives becomes frivolous, especially a problem if those versions mean the deletion of other, actually wanted history for configurations, videogame saves, project files ect ect.

Describe the solution you'd like
The solution to this would be user-configurable weights (priorities) for any given directory or file. This could manifest as a context menu entry for setting a value (0-100 or low-high) and the ability to apply it recursively down the file tree.

Describe alternatives you've considered
For completion's sake, being able to exclude certain file's versions from expiring at all would be useful, as well as outright selectively disabling the feature. Even further, having fine-grained control over the frequency of kept versions, but that's getting too far ahead.

Another less-functional but possibly easier to implement idea is preferring to clean larger files over low-size ones when marking for expiration.

Additional context
Some ability for admins to control such a feature would be nice as well. The versions_retention_obligation config option does exist but is very limited in scope. For the selective priorities feature specifically, there could be settings for global defaults for new and existing users, either through the admin panel or server configuration (eg. anything under /Documents defaults with high retention priority while /log or /Documents/repositories is very low/disabled).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names the file versioning feature and the versions_retention_obligation configuration, but no files or tests. Start by locating the version-retention and expiration implementation, then define a focused priority scope and verify that versions are retained or expired accordingly for the chosen user or administrator settings.

Written by the indexing model from the issue text.

Assessment

Domain
full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.