Skip to content

Add MASGITOFF (Mastodon Git Optimized File Format) Support#25

Draft
maarzt wants to merge 32 commits intomasterfrom
masgitoff
Draft

Add MASGITOFF (Mastodon Git Optimized File Format) Support#25
maarzt wants to merge 32 commits intomasterfrom
masgitoff

Conversation

@maarzt
Copy link
Collaborator

@maarzt maarzt commented Oct 7, 2024

Implements #21

TODOs

  • Compatibility with Mastodon core git reposititory: The code has modified copies of ProjectLoader and ProjectSaver classes from mastodon-sc/mastodon and requires the MamutViewStateXMLSerialization class to be public.
    • Find a solution that does not require ProjectLoader and ProjectSaver to be copied
    • After the point above is solved MamutViewStateXMLSerializationwould not need to be public any longer.
  • Pressure test the "tags" serialization make sure unused label sets are removed from the "links_tag_lookup_table.raw" and "spots_tag_lookup_table.raw".
  • Add a menu option to open a git repository stored as Masgitoff file formal

maarzt added 30 commits April 18, 2024 20:53
Still missing:
* spot labels
* tags
* correct handling of the row index
* spot UUID
This commits uses reflection to get access to the otherwise package private
ModelSerializer class. The ModelSerializer class is used by the Mastodon
core to quickly convert Spots and Links into a series of bytes. And it is
essential for good performance during read and write of a Mastodon project.
These improve the readability of the error messages. When tags differ
between two model.
Previously an old spot label that after renaming or deleting would not be
required anymore was still written in a spot-labels directory.
Both classes where copied from github repo:
  https://github.com/mastodon-sc/mastodon
Commit hash: 9caa9c505d152eaf3314c4cf4edfb464ef6d6939

The classes where renamed and minimal changes where made to fix compile
errors. Also the class MamutViewStateXMLSerialization in mastodon core
needs to be public for this to work.
@maarzt maarzt marked this pull request as draft October 10, 2024 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant