Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Draft
wants to merge 32 commits into
base: master
Choose a base branch
from

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