{"thread":{"id":"21112","subject":"How to delete large files","startedAt":"2009-10-02T10:03:44Z","lastAt":"2009-10-02T19:20:58Z","messageCount":5,"participants":["Nils Homer","Matthieu Moy","Mikael Magnusson","Johannes Sixt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"124127","messageId":"C6EB1E10.D7AB%nilshomer@gmail.com","threadId":"21112","inReplyTo":null,"subject":"How to delete large files","fromName":"Nils Homer","fromEmail":"nilshomer@gmail.com","sentAt":"2009-10-02T10:03:44Z","receivedAt":"2009-10-02T10:03:44Z","isPatch":false,"sender":{"key":"nilshomer@gmail.com","avatar":null},"body":"I wish to delete some large offending files (10MB to >100MB each) from my\ngit repository (git://bfast.git.sourceforge.net/gitroot/bfast/bfast).  The\ncurrent size of the repo is 656MB.\n\nI created a backup of my repository and then searched for such offending\nfiles using a script found here:\nhttp://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-ob\njects-and-trim-your-waist-line/\nwhere I modified the script to output in MB instead of KB.\n\nThis gave me a list of files that I wanted to delete:\n-e   size  pack                                      SHA\nlocation\n113  113   f9f2faab597d4f8ccbfac2864347dbc256353fbf\ntests.long/save/save.tar.gz\n113  113   926b1ba880a26354c4a6b9391985f57fbc9a1174\ntests.long/save/save.tar.gz\n113  113   e568480bcb8239e6d1ed8d2da86c309c0d3d101b\ntests.long/save/save.tar.gz\n113  113   e3c0ee53f20e8ebfb60eaefcd7b405168c26a565\ntests.long/save/save.tar.gz\n103  103   ee2ee50c5075d05d29764c8d4b9acc2acedda919\ntests.long/save/save.tar.gz\n35   35    319c75945c27096093dbab5a0bf6a9a08089bc2d\ntests.long/data/data.tar.gz\n11   11    805193c74ceeffca9da3a2788545e701d77e1caf  tests/save/save.tar.gz\n11   11    658e4a78c1028875ab597d6bde5823cd6a1694b9  tests/save/save.tar.gz\n\nSo I decided to remove these files using:\ngit filter-branch --index-filter \"git rm -rf --cached --ignore-unmatch\ntests.long/save/save.tar.gz tests.long/data/data.tar.gz\ntests/save/save.tar.gz\" HEAD\n\nI then ran:\nrm -rf .git/refs/original\ngit reflog expire --expire=now all\ngit gc --prune=now\n\nStill (using du ­h) the repository is 656MB and I can see the above files in\nthe revision list:\ngit rev-list --all --objects | grep tests.long/save/save.tar.gz\nee2ee50c5075d05d29764c8d4b9acc2acedda919 tests.long/save/save.tar.gz\ne568480bcb8239e6d1ed8d2da86c309c0d3d101b tests.long/save/save.tar.gz\nf9f2faab597d4f8ccbfac2864347dbc256353fbf tests.long/save/save.tar.gz\n926b1ba880a26354c4a6b9391985f57fbc9a1174 tests.long/save/save.tar.gz\ne3c0ee53f20e8ebfb60eaefcd7b405168c26a565 tests.long/save/save.tar.gz\n\nCould this be because of tags that I had previously created?\n\nI am running git version 1.6.3.3.  I appreciate any help in advance,\n\nNils Homer\n"},{"id":"124128","messageId":"vpq7hvekoq7.fsf@bauges.imag.fr","threadId":"21112","inReplyTo":"C6EB1E10.D7AB%nilshomer@gmail.com","subject":"Re: How to delete large files","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2009-10-02T11:41:04Z","receivedAt":"2009-10-02T11:41:04Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Nils Homer <nilshomer@gmail.com> writes:\n\n> Still (using du ­h) the repository is 656MB and I can see the above files in\n> the revision list:\n> git rev-list --all --objects | grep tests.long/save/save.tar.gz\n> ee2ee50c5075d05d29764c8d4b9acc2acedda919 tests.long/save/save.tar.gz\n> e568480bcb8239e6d1ed8d2da86c309c0d3d101b tests.long/save/save.tar.gz\n> f9f2faab597d4f8ccbfac2864347dbc256353fbf tests.long/save/save.tar.gz\n> 926b1ba880a26354c4a6b9391985f57fbc9a1174 tests.long/save/save.tar.gz\n> e3c0ee53f20e8ebfb60eaefcd7b405168c26a565 tests.long/save/save.tar.gz\n>\n> Could this be because of tags that I had previously created?\n\nI guess so. Anything pointing to the old history will prevent Git from\ndeleting it.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"124129","messageId":"237967ef0910020526w51c05570g606ebc16e0b4a3e7@mail.gmail.com","threadId":"21112","inReplyTo":"C6EB1E10.D7AB%nilshomer@gmail.com","subject":"Re: How to delete large files","fromName":"Mikael Magnusson","fromEmail":"mikachu@gmail.com","sentAt":"2009-10-02T12:26:44Z","receivedAt":"2009-10-02T12:26:44Z","isPatch":false,"sender":{"key":"mikachu@gmail.com","avatar":null},"body":"2009/10/2 Nils Homer <nilshomer@gmail.com>:\n> I wish to delete some large offending files (10MB to >100MB each) from my\n> git repository (git://bfast.git.sourceforge.net/gitroot/bfast/bfast).  The\n> current size of the repo is 656MB.\n>\n> I created a backup of my repository and then searched for such offending\n> files using a script found here:\n> http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-ob\n> jects-and-trim-your-waist-line/\n> where I modified the script to output in MB instead of KB.\n>\n> This gave me a list of files that I wanted to delete:\n> -e   size  pack                                      SHA\n> location\n> 113  113   f9f2faab597d4f8ccbfac2864347dbc256353fbf\n> tests.long/save/save.tar.gz\n> 113  113   926b1ba880a26354c4a6b9391985f57fbc9a1174\n> tests.long/save/save.tar.gz\n> 113  113   e568480bcb8239e6d1ed8d2da86c309c0d3d101b\n> tests.long/save/save.tar.gz\n> 113  113   e3c0ee53f20e8ebfb60eaefcd7b405168c26a565\n> tests.long/save/save.tar.gz\n> 103  103   ee2ee50c5075d05d29764c8d4b9acc2acedda919\n> tests.long/save/save.tar.gz\n> 35   35    319c75945c27096093dbab5a0bf6a9a08089bc2d\n> tests.long/data/data.tar.gz\n> 11   11    805193c74ceeffca9da3a2788545e701d77e1caf  tests/save/save.tar.gz\n> 11   11    658e4a78c1028875ab597d6bde5823cd6a1694b9  tests/save/save.tar.gz\n>\n> So I decided to remove these files using:\n> git filter-branch --index-filter \"git rm -rf --cached --ignore-unmatch\n> tests.long/save/save.tar.gz tests.long/data/data.tar.gz\n> tests/save/save.tar.gz\" HEAD\n>\n> I then ran:\n> rm -rf .git/refs/original\n> git reflog expire --expire=now 卟ll\n> git gc --prune=now\n>\n> Still (using du 虐) the repository is 656MB and I can see the above files in\n> the revision list:\n> git rev-list --all --objects | grep tests.long/save/save.tar.gz\n> ee2ee50c5075d05d29764c8d4b9acc2acedda919 tests.long/save/save.tar.gz\n> e568480bcb8239e6d1ed8d2da86c309c0d3d101b tests.long/save/save.tar.gz\n> f9f2faab597d4f8ccbfac2864347dbc256353fbf tests.long/save/save.tar.gz\n> 926b1ba880a26354c4a6b9391985f57fbc9a1174 tests.long/save/save.tar.gz\n> e3c0ee53f20e8ebfb60eaefcd7b405168c26a565 tests.long/save/save.tar.gz\n>\n> Could this be because of tags that I had previously created?\n>\n> I am running git version 1.6.3.3.  I appreciate any help in advance,\n\nWell, you just gave \"HEAD\" to git filter-branch to rewrite, i think\nyou want --all to rewrite all refs you have.\n\n-- \nMikael Magnusson\n"},{"id":"124130","messageId":"4AC6031A.2070409@viscovery.net","threadId":"21112","inReplyTo":"237967ef0910020526w51c05570g606ebc16e0b4a3e7@mail.gmail.com","subject":"Re: How to delete large files","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2009-10-02T13:41:46Z","receivedAt":"2009-10-02T13:41:46Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Mikael Magnusson schrieb:\n> Well, you just gave \"HEAD\" to git filter-branch to rewrite, i think\n> you want --all to rewrite all refs you have.\n\n... and '--tag-filter cat' to rewrite tags as well.\n\n-- Hannes\n"},{"id":"124146","messageId":"C6EBA0AA.D7D3%nilshomer@gmail.com","threadId":"21112","inReplyTo":"4AC6031A.2070409@viscovery.net","subject":"Re: How to delete large files","fromName":"Nils Homer","fromEmail":"nilshomer@gmail.com","sentAt":"2009-10-02T19:20:58Z","receivedAt":"2009-10-02T19:20:58Z","isPatch":false,"sender":{"key":"nilshomer@gmail.com","avatar":null},"body":"Thank-you for all of your insightful help. Combining all the advice, the\ncommands that worked are:\n\ngit filter-branch --index-filter \"git rm -rf --cached --ignore-unmatch\n$files\" --tag-name-filter cat -- --all\n\ngit -rf .git/refs/original\n\ngit reflog expire --expire=now\n\ngit gc --prune=now\n\nI then cloned the repository to a different location and replaced my\ncentralized version with the cloned copy.\n\nThanks,\n\nNils\n\n\nOn 10/2/09 6:41 AM, \"Johannes Sixt\" <j.sixt@viscovery.net> wrote:\n\n> Mikael Magnusson schrieb:\n>> Well, you just gave \"HEAD\" to git filter-branch to rewrite, i think\n>> you want --all to rewrite all refs you have.\n> \n> ... and '--tag-filter cat' to rewrite tags as well.\n> \n> -- Hannes\n"}]}