Open sushi2k opened 5 years ago
There are a lot of MSTG releases checked in (script from https://stackoverflow.com/a/42544963). This would need to be removed
$ git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| sed -n 's/^blob //p' \
| sort --numeric-sort --key=2 \
| cut -c 1-12,41- \
| $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest | grep "MiB"
eea7fd0b4d29 1.1MiB Generated/MSTG-eng.mobi
662dc0b9f336 1.2MiB Tools/base_images/mstg-cover.png
c2f81fda048a 1.2MiB Tools/base_images/mstg-cover.png
fb88a530efe0 1.2MiB Tools/base_images/mstg-cover.png
3c18aa8f1d3a 1.2MiB Tools/base_images/mstg-cover.png
113607a570d1 1.3MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
fd56af789bfa 1.3MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
e1009063fbc9 1.3MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
294b7b6347c0 1.4MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
c9e11b6748de 1.4MiB OMTG-Files/03_Examples/01_Android/01_HelloWorld-JNI/HelloWorld-JNI.apk
afdc6f54e1df 1.4MiB Samples/Android/01_HelloWorld-JNI/HelloWord-JNI.apk
d956dd86cb59 1.5MiB OMTG-Files/02_Crackmes/01_Android/Level_03/UnCrackable-Level3.apk
f083fe1172cb 1.5MiB OMTG-Files/02_Crackmes/01_Android/Level_03/UnCrackable-Level3.apk
e30352cf97c2 1.5MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
d94bb3a9caaf 1.7MiB Tools/base_images/mstg-cover.xcf
8b7f92390e0a 1.8MiB Generated/MSTG-eng.pdf
f784584fadda 1.8MiB Tools/base_images/mstg-cover.xcf
871d210b0217 1.8MiB Tools/base_images/mstg-cover.xcf
6224e007f469 1.8MiB Tools/base_images/mstg-cover-hugo.xcf
0b37fcc92bc0 1.8MiB OMTG-Files/03_Examples/01_Android/01_HelloWorld-JNI/HelloWorld-JNI.apk
57e649f0852b 2.0MiB Generated/MSTG.pdf
f9ad46bc7a80 3.5MiB OMTG-Files/Download/apkx.tgz
75d6959d9b82 3.5MiB OMTG-Files/Download/apkx-0.9.tgz
df213a1388b2 3.5MiB OMTG-Files/Download/apkx-0.9.tgz
c0ccd9ae4f00 3.5MiB OMTG-Files/01_Tools/01_Android/01_apkx/apkx-0.9.tgz
e86687f2b8bc 3.5MiB OMTG-Files/Download/apkx-0.9.tgz
eb732d32fb05 3.9MiB OMTG-Files/01_Tools/01_Android/01_apkx/apkx-libs.jar
de15a7a6083a 4.3MiB Tools/base_images/mstg-cover-hugo.psd
5eb7d1823088 5.4MiB Samples/Android/02_CertificatePinning/certificatePinningXamarin.apk
db20645ff816 7.1MiB OMTG-Files/Download/apkx.tgz
c3ee203c327f 7.3MiB Generated/MSTG-eng.epub
c6bb8ee75ba4 7.3MiB Generated/MSTG-eng.epub
7f720c95d02b 7.3MiB Generated/MSTG-eng.epub
d32e0b7d56ea 7.3MiB Generated/MSTG-eng.epub
e57065feb96b 7.3MiB Generated/MSTG-eng.epub
7a39223e2ef3 7.3MiB Generated/MSTG-eng.epub
23484416704d 7.3MiB Generated/MSTG-eng.mobi
d786c5ea5aa1 7.3MiB Generated/MSTG-eng.mobi
7e38f032d455 7.3MiB Generated/MSTG-eng.mobi
cbcb0128e036 7.3MiB Generated/MSTG-eng.mobi
3ac9b80b56df 7.3MiB Generated/MSTG-eng.mobi
64322fcde218 7.4MiB Generated/MSTG-eng.mobi
b0f5b6df39c0 7.5MiB Generated/MSTG-EN.mobi
930709c7d183 7.7MiB Generated/MSTG-EN.epub
c253c5d9436e 8.8MiB Tools/MSTG_tpl.docx
f252841672eb 8.8MiB Tools/reference.docx
1fca076cd0e6 9.1MiB Generated/MSTG-EN.mobi
54354c955820 9.1MiB Generated/MSTG-EN.mobi
e657b7e93b03 9.1MiB Generated/MSTG-EN.mobi
7598860a7fe7 9.1MiB Generated/MSTG-EN.mobi
75a49adc162c 10MiB Generated/MSTG.pdf
69af985f4d29 11MiB Generated/MSTG-EN.pdf
63fee440a4b7 11MiB Generated/MSTG-EN.pdf
466f884d8d71 11MiB Generated/MSTG-EN.pdf
9d8fb723748c 11MiB Generated/MSTG-EN.pdf
43bbaa68f2fa 11MiB Generated/MSTG-EN.pdf
f56f670cade0 11MiB Generated/MSTG-EN.pdf
96e1a3a3f87a 11MiB Generated/MSTG-EN.pdf
7c591b1450bd 11MiB Generated/MSTG-EN.pdf
bf4e39b9371d 11MiB Generated/MSTG-eng.pdf
c17f0db3de5e 11MiB Generated/MSTG-eng.pdf
3b64133ef809 11MiB Generated/MSTG-eng.pdf
42103a6e8f8d 11MiB Generated/MSTG-eng.pdf
5c54eabdf645 11MiB Generated/MSTG-eng.pdf
d136a1ebd9ea 11MiB Generated/MSTG-eng.pdf
e4a424c68876 12MiB Generated/MSTG-EN.epub
68063611e4f4 12MiB Generated/MSTG-EN.epub
3269f50097c8 12MiB Generated/MSTG-EN.epub
42b781a5d6c5 12MiB Generated/MSTG-EN.epub
4523bd646d47 12MiB Generated/MSTG-EN.pdf
dcdb9f19c98f 15MiB Generated/MSTG-EN.pdf
2ab48b5a56a0 15MiB Generated/MSTG-EN.pdf
9e6fb7c02e53 15MiB Generated/MSTG-EN.pdf
ea1b6bc13f15 15MiB Generated/MSTG-EN.pdf
7e41a142886c 16MiB Generated/MSTG-EN.docx
b1ef232f6394 16MiB Generated/MSTG-EN.docx
dd4f1916190a 16MiB Generated/MSTG-EN.docx
f81918418d56 16MiB Generated/MSTG-EN.docx
f7afbcc27574 19MiB Generated/MSTG-EN.docx
68cd3a62c0c6 19MiB Generated/MSTG-EN.docx
This seems to be the way to go to remove the majority of the large files https://rtyley.github.io/bfg-repo-cleaner/
https://stackoverflow.com/a/17890278
Let's discuss during the summit, haven't done this before :-)
cleaning it up, will cost releases. shall we close this or do you want to clean up specific documents still for specific commits?
Let's give it another try!
List of files over 1MB in git:
git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| sed -n 's/^blob //p' \
| sort --numeric-sort --key=2 \
| cut -c 1-12,41- \
| $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest | grep "MiB"
eea7fd0b4d29 1.1MiB Generated/MSTG-eng.mobi
662dc0b9f336 1.2MiB Tools/base_images/mstg-cover.png
c2f81fda048a 1.2MiB Tools/base_images/mstg-cover.png
fb88a530efe0 1.2MiB Tools/base_images/mstg-cover.png
3c18aa8f1d3a 1.2MiB Tools/base_images/mstg-cover.png
17c5eb4b86e1 1.2MiB tools/base_images/mstg-cover.png
113607a570d1 1.3MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
fd56af789bfa 1.3MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
e1009063fbc9 1.3MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
d75d1ee5edb2 1.3MiB Document/cover.jpg
48e892c4a13f 1.4MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
294b7b6347c0 1.4MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
c9e11b6748de 1.4MiB OMTG-Files/03_Examples/01_Android/01_HelloWorld-JNI/HelloWorld-JNI.apk
afdc6f54e1df 1.4MiB Samples/Android/01_HelloWorld-JNI/HelloWord-JNI.apk
d956dd86cb59 1.5MiB OMTG-Files/02_Crackmes/01_Android/Level_03/UnCrackable-Level3.apk
f083fe1172cb 1.5MiB OMTG-Files/02_Crackmes/01_Android/Level_03/UnCrackable-Level3.apk
e30352cf97c2 1.5MiB Crackmes/Android/Level_03/UnCrackable-Level3.apk
d94bb3a9caaf 1.7MiB Tools/base_images/mstg-cover.xcf
8b7f92390e0a 1.8MiB Generated/MSTG-eng.pdf
f784584fadda 1.8MiB Tools/base_images/mstg-cover.xcf
871d210b0217 1.8MiB Tools/base_images/mstg-cover.xcf
6224e007f469 1.8MiB tools/base_images/mstg-cover-hugo.xcf
81891ecacd6e 1.8MiB tools/base_images/mstg-cover.xcf
0b37fcc92bc0 1.8MiB OMTG-Files/03_Examples/01_Android/01_HelloWorld-JNI/HelloWorld-JNI.apk
57e649f0852b 2.0MiB Generated/MSTG.pdf
8a2b8b03598f 2.1MiB Document/Images/cover.jpg
0af54bebe422 2.5MiB overflows_fix_images_microtype.txt
366b8b46382b 2.8MiB overflows_master.txt
3e9ac49e6e7e 3.5MiB Crackmes/Android/Level_04/r2pay-v0.9.apk
f9ad46bc7a80 3.5MiB OMTG-Files/Download/apkx.tgz
75d6959d9b82 3.5MiB OMTG-Files/Download/apkx-0.9.tgz
df213a1388b2 3.5MiB OMTG-Files/Download/apkx-0.9.tgz
c0ccd9ae4f00 3.5MiB OMTG-Files/01_Tools/01_Android/01_apkx/apkx-0.9.tgz
e86687f2b8bc 3.5MiB OMTG-Files/Download/apkx-0.9.tgz
eb732d32fb05 3.9MiB OMTG-Files/01_Tools/01_Android/01_apkx/apkx-libs.jar
dc4eb2f2107d 4.1MiB Crackmes/Android/Level_04/r2pay-v1.0.apk
de15a7a6083a 4.3MiB tools/base_images/mstg-cover-hugo.psd
5eb7d1823088 5.4MiB Samples/Android/02_CertificatePinning/certificatePinningXamarin.apk
db20645ff816 7.1MiB OMTG-Files/Download/apkx.tgz
c3ee203c327f 7.3MiB Generated/MSTG-eng.epub
c6bb8ee75ba4 7.3MiB Generated/MSTG-eng.epub
7f720c95d02b 7.3MiB Generated/MSTG-eng.epub
d32e0b7d56ea 7.3MiB Generated/MSTG-eng.epub
e57065feb96b 7.3MiB Generated/MSTG-eng.epub
7a39223e2ef3 7.3MiB Generated/MSTG-eng.epub
23484416704d 7.3MiB Generated/MSTG-eng.mobi
d786c5ea5aa1 7.3MiB Generated/MSTG-eng.mobi
7e38f032d455 7.3MiB Generated/MSTG-eng.mobi
cbcb0128e036 7.3MiB Generated/MSTG-eng.mobi
3ac9b80b56df 7.3MiB Generated/MSTG-eng.mobi
64322fcde218 7.4MiB Generated/MSTG-eng.mobi
b0f5b6df39c0 7.5MiB Generated/MSTG-EN.mobi
930709c7d183 7.7MiB Generated/MSTG-EN.epub
c253c5d9436e 8.8MiB Tools/MSTG_tpl.docx
f252841672eb 8.8MiB tools/old/reference.docx
1fca076cd0e6 9.1MiB Generated/MSTG-EN.mobi
54354c955820 9.1MiB Generated/MSTG-EN.mobi
e657b7e93b03 9.1MiB Generated/MSTG-EN.mobi
7598860a7fe7 9.1MiB Generated/MSTG-EN.mobi
75a49adc162c 10MiB Generated/MSTG.pdf
69af985f4d29 11MiB Generated/MSTG-EN.pdf
63fee440a4b7 11MiB Generated/MSTG-EN.pdf
466f884d8d71 11MiB Generated/MSTG-EN.pdf
9d8fb723748c 11MiB Generated/MSTG-EN.pdf
43bbaa68f2fa 11MiB Generated/MSTG-EN.pdf
f56f670cade0 11MiB Generated/MSTG-EN.pdf
96e1a3a3f87a 11MiB Generated/MSTG-EN.pdf
7c591b1450bd 11MiB Generated/MSTG-EN.pdf
bf4e39b9371d 11MiB Generated/MSTG-eng.pdf
c17f0db3de5e 11MiB Generated/MSTG-eng.pdf
3b64133ef809 11MiB Generated/MSTG-eng.pdf
42103a6e8f8d 11MiB Generated/MSTG-eng.pdf
5c54eabdf645 11MiB Generated/MSTG-eng.pdf
d136a1ebd9ea 11MiB Generated/MSTG-eng.pdf
e4a424c68876 12MiB Generated/MSTG-EN.epub
68063611e4f4 12MiB Generated/MSTG-EN.epub
3269f50097c8 12MiB Generated/MSTG-EN.epub
42b781a5d6c5 12MiB Generated/MSTG-EN.epub
4523bd646d47 12MiB Generated/MSTG-EN.pdf
dcdb9f19c98f 15MiB Generated/MSTG-EN.pdf
2ab48b5a56a0 15MiB Generated/MSTG-EN.pdf
9e6fb7c02e53 15MiB Generated/MSTG-EN.pdf
ea1b6bc13f15 15MiB Generated/MSTG-EN.pdf
5a4cfcbc193c 16MiB OWASP_MSTG-1.2-en.mobi
7e41a142886c 16MiB Generated/MSTG-EN.docx
b1ef232f6394 16MiB Generated/MSTG-EN.docx
dd4f1916190a 16MiB Generated/MSTG-EN.docx
f81918418d56 16MiB Generated/MSTG-EN.docx
f7afbcc27574 19MiB Generated/MSTG-EN.docx
68cd3a62c0c6 19MiB Generated/MSTG-EN.docx
546de07ee2e5 26MiB OWASP_MSTG-1.3.pdf
be667b921761 26MiB OWASP_MSTG-1.2-en.pdf
52d3ff75f2ab 26MiB OWASP_MSTG-1.2-en.pdf
fc7cffcf00e9 27MiB OWASP_MSTG-1.3_WIP_.docx
4442600cf70e 27MiB OWASP_MSTG-1.2-en_WIP_.docx
b380677cf601 28MiB OWASP_MSTG-1.3.epub
d8246e12d2ff 29MiB OWASP_MSTG-1.2-en.epub
In .git we have 417MB
$ owasp-mstg.git ❯ du -hc
417M ./objects/pack
0B ./objects/info
417M ./objects
4.0K ./info
60K ./hooks
0B ./refs/heads
0B ./refs/tags
0B ./refs
417M .
417M total
First test with a fork of the MSTG:
owasp-mstg-fork-git-cleanup ❯ java -jar ~/Downloads/bfg-1.14.0.jar --strip-blobs-bigger-than 7M owasp-mstg.git
Using repo : /Users/sven/PentestTools/OWASP/owasp-mstg-fork-git-cleanup/owasp-mstg.git
Scanning packfile for large blobs: 32170
Scanning packfile for large blobs completed in 422 ms.
Found 59 blob ids for large blobs - biggest=29947485 smallest=7399457
Total size (unpacked)=783218484
Found 354 objects to protect
Found 22 commit-pointing refs : HEAD, refs/heads/1402-1174-oauth, refs/heads/DarioI-review/android-platform-overview, ...
Found 6 tag-pointing refs : refs/tags/1.0.1, refs/tags/1.0.2, refs/tags/1.1.0, ...
Protected commits
-----------------
These are your protected commits, and so their contents will NOT be altered:
* commit 7f1220cf (protected by 'HEAD') - contains 1 dirty file :
- tools/reference.docx (8.8 MB)
WARNING: The dirty content above may be removed from other commits, but as
the *protected* commits still use it, it will STILL exist in your repository.
Details of protected dirty content have been recorded here :
/Users/sven/PentestTools/OWASP/owasp-mstg-fork-git-cleanup/owasp-mstg.git.bfg-report/2021-07-23/06-32-29/protected-dirt/
If you *really* want this content gone, make a manual commit that removes it,
and then run the BFG on a fresh copy of your repo.
Cleaning
--------
Found 7693 commits
Cleaning commits: 100% (7693/7693)
Cleaning commits completed in 6,110 ms.
Updating 27 Refs
----------------
Ref Before After
------------------------------------------------------------------------
refs/heads/1402-1174-oauth | 187dd3bb | d4554caa
refs/heads/DarioI-review/android-platform-overview | 8d235a46 | 5c0a72c3
refs/heads/add-webviews-cleanup | 4576fbe4 | 7f24a245
refs/heads/consistency-for-storage-4-and-7 | a4139438 | 69512998
refs/heads/controls-refactor | 9362662d | a875016e
refs/heads/cpholguera-patch-1 | 217ceff4 | 8ef0fa8f
refs/heads/cpholguera-patch-2 | dd11c624 | 75044de7
refs/heads/cpholguera-patch-4 | 03b16842 | 348e6eac
refs/heads/fix_slack_link | 9c01a6f2 | 96f039fa
refs/heads/master | 7f1220cf | 23173ea8
refs/heads/new_release | ab1e0ec5 | 2e10e57d
refs/heads/optimize-link-checker | 882e8a82 | c15e9973
refs/heads/origin/controls-refactor | bca3f9df | 6c111574
refs/heads/remove_hash_of_checklist | c7e8178e | 2a16e964
refs/heads/sushi2k-patch-1 | 46bcf446 | e86e8412
...
Updating references: 100% (27/27)
...Ref update completed in 49 ms.
Commit Tree-Dirt History
------------------------
Earliest Latest
| |
............DmmmmmmmmmmmmmmmmmDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
D = dirty commits (file tree fixed)
m = modified commits (commit message or parents changed)
. = clean commits (no changes to file tree)
Before After
-------------------------------------------
First modified commit | d222e475 | 3becfd95
Last dirty commit | ab1e0ec5 | 2e10e57d
Deleted files
-------------
Filename Git id
-------------------------------------------------------------------------
MSTG-EN.docx | dd4f1916 (16.4 MB), 7e41a142 (16.4 MB), ...
MSTG-EN.epub | 42b781a5 (11.7 MB), 3269f500 (11.7 MB), ...
MSTG-EN.mobi | 7598860a (9.1 MB), e657b7e9 (9.1 MB), ...
MSTG-EN.pdf | 2ab48b5a (14.8 MB), 63fee440 (10.7 MB), ...
MSTG-eng.epub | c6bb8ee7 (7.3 MB), e57065fe (7.3 MB), ...
MSTG-eng.mobi | 23484416 (7.3 MB), 7e38f032 (7.3 MB), ...
MSTG-eng.pdf | 3b64133e (11.3 MB), 5c54eabd (11.4 MB), ...
MSTG.pdf | 75a49adc (10.5 MB)
MSTG_tpl.docx | c253c5d9 (8.8 MB)
OWASP_MSTG-1.2-en.epub | d8246e12 (28.6 MB)
OWASP_MSTG-1.2-en.mobi | 5a4cfcbc (16.2 MB)
OWASP_MSTG-1.2-en.pdf | be667b92 (26.3 MB), 52d3ff75 (26.3 MB)
OWASP_MSTG-1.2-en_WIP_.docx | 4442600c (27.5 MB)
OWASP_MSTG-1.3.epub | b380677c (28.5 MB)
OWASP_MSTG-1.3.pdf | 546de07e (25.8 MB)
...
In total, 9765 object ids were changed. Full details are logged here:
/Users/sven/PentestTools/OWASP/owasp-mstg-fork-git-cleanup/owasp-mstg.git.bfg-report/2021-07-23/06-32-29
BFG run is complete! When ready, run: git reflog expire --expire=now --all && git gc --prune=now --aggressive
owasp-mstg-fork-git-cleanup ❯ cd owasp-mstg.git 8s
owasp-mstg-fork-git-cleanup/owasp-mstg.git ❯git reflog expire --expire=now --all && git gc --prune=now --aggressive
Enumerating objects: 32172, done.
Counting objects: 100% (32172/32172), done.
Delta compression using up to 8 threads
Compressing objects: 100% (31930/31930), done.
Writing objects: 100% (32172/32172), done.
Selecting bitmap commits: 7600, done.
Building bitmaps: 100% (180/180), done.
Total 32172 (delta 23721), reused 2693 (delta 0), pack-reused 0
Instead of 417MB it's now 130MB (for .git only)
owasp-mstg-fork-git-cleanup/owasp-mstg.git ❯ du -hc 37s
129M ./objects/pack
428K ./objects/info
130M ./objects
8.0K ./info
60K ./hooks
0B ./refs/heads
0B ./refs/tags
0B ./refs
130M .
130M total
Describe the issue The github repo is using already 374MB. We should clean it:
https://stackoverflow.com/questions/2100907/how-to-remove-delete-a-large-file-from-commit-history-in-git-repository