Skip to content

[FEATURE] Diff-encode commits #17

@za419

Description

@za419

Commits will have their files encoded as the differences from their versions in the parent commit, in order to save disk space.

In order to (partly) mitigate the slowdown this causes (having to read all previous commits in order to see a commit's files), the following steps will be taken:

  • Every X commits is a 'principal commit', encoded with all files

    • This can be edited by repacking the repository (see below)
  • Every other commit is encoded as the patch required to transform the last
    commit's files into the new commit.

  • Merge commits are always principal commits, regardless of if its their turn
    (to avoid diff bugs)

    • If X is set to -1 (all diff encoded, or only principal is the initial),
      then each file in a merge commit will specify which parent is the diff base
      for that file

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions