Description:
Created experimental repository mkungla/aframe-lite where all the excessive noise has been removed reducing repository size 50 times and improving commit log readability.
Results
| repository | commits | size |
| -------------- | ------------- | ---- |
| aframevr/aframe | 3986 | 233M |
| mkungla/aframe-lite | 2644 | 4.4 M |
Conclusion
Rewriting Git's history at this stage of the project is rather challenging, but not impossible. I think, in addition to reducing the size of the repository, attention should also be drawn to the readability of Git's history. As @a-frobot already has over 600 commits in less than a year, which is relatively verbose and has created a disturbing noise to track the actual development of A-Frame.
./dist could be in aframevr/releases repository./examples are one of the most biggest git objects in the git object database so it would be reasonable to move these to own repository to avoid repository growth over GB's near future../docs and gh-pages could also be painlessly moved to other repository together with A-Frame site content e.g.npm package could be built by CI/CD where "aframe.js" could be created including injection of package data wanted like version etc. Or better with git annotated / signed tags. Instead of having new commit :ref updating src/index.js upon every change.What are your thoughts? Do you see this as a potential issue, or can this become a issue in the near future?
really it would be better for any assets that may be under ./examples to be in aframevr/assets to go on CDN, but that probably implies that Safari CORS fixes would need to be widely deployed for that to work
the rest of it is (comparatively speaking) noise floor, isn't it?
looks like .git using 213M
is it possible to reduce this?
868K ./tests
40K ./scripts
213M ./.git
12K ./.github
30M ./examples
19M ./dist
888K ./src
776K ./docs
48K ./vendor
263M .
@arpu basically yes take a look at test repo where I did that mkungla/aframe-lite I rewrote the history and removed the noise which makes repo so big. Resulting size I got from ca 200 MB to 4.5 MB
However there will be challenges to do such rewrite. It will impact all forks and devs having to migrate to rewrited history. However that procedure could be written out clearly and easy to follow.
People can do like git clone --depth 20 [email protected]:aframevr/aframe if they don't want to pull in old files. Don't think, then, it's necessary to rewrite the history.
@mkungla looks like the --depth is the best practice here
git clone --depth 1 https://github.com/aframevr/aframe
12K ./.github
776K ./docs
48K ./vendor
868K ./tests
29M ./.git
30M ./examples
888K ./src
19M ./dist
40K ./scripts
79M .
yes in many cases it is the way to go.
@ngokevin what help is here needed? i think this can be closed?
Most helpful comment
really it would be better for any assets that may be under
./examplesto be in aframevr/assets to go on CDN, but that probably implies that Safari CORS fixes would need to be widely deployed for that to workthe rest of it is (comparatively speaking) noise floor, isn't it?