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

Large files management #8

Open
milivojm opened this issue Jan 4, 2021 · 3 comments
Open

Large files management #8

milivojm opened this issue Jan 4, 2021 · 3 comments
Labels
Enhancement Changes to existing features not based on mod updates

Comments

@milivojm
Copy link

milivojm commented Jan 4, 2021

Considering deletes and updates of files are frequent and git as source control doesn't play nice with large files and keeps all changes in history forever, let's try and think of ways of

  • keeping the build process simple,
  • development process simple,
  • keeping the storage levels down as much as possible
@milivojm milivojm added the Enhancement Changes to existing features not based on mod updates label Jan 4, 2021
@milivojm milivojm changed the title File management Large files management Jan 4, 2021
@freghar
Copy link
Contributor

freghar commented Jan 4, 2021

One reasonably easy way (that doesn't involve git lfs or google drive) is to version only the configs and throw away the history for the big binary blobs, using one branch for configs, and an orphan (no common ancestor) branch for the blobs. The config branch would be versioned as usual, the blob branch would just contain one commit that would always get git commit --amend-ed and force-pushed, so that no history is ever created.

The old big blob commits would remain in a local reflog, but they'd be garbage-collected after ~90 days as any dangling objects.

The deployment could be automated as git clone by default always clones all branches, so it would be just a question of

git fetch --all  # just in case
git checkout origin/big-blob-branch -- .
<pbo packing logic here>

(this would leave garbage in the local repo, but a cleaner solution of course exists with a temporary directory as external worktree, the above is just simple demo)

@milivojm
Copy link
Author

milivojm commented Jan 4, 2021

People still use github desktop client, it will be a nightmare for them. :/

But certainly, an option.

@freghar
Copy link
Contributor

freghar commented Feb 12, 2021

How about just putting the asset directories onto google drive and pointing the README to it, saying to download all the folders into addons before packing all?

It would be a pretty manual process, but probably acceptable given how infrequently the assets change ... not to mention super fool-proof.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement Changes to existing features not based on mod updates
Projects
None yet
Development

No branches or pull requests

2 participants