I tried a couple variations of --delete-files and --delete-folders and get an exception. Our .git folder is quite large -- 5.61GB and contains a lot of binary data. Here's the command and the error. Please help!
I'm really trying to split the repo up but want to preserve the commit history for the parts I'm keeping. So the approach I've taken is to make an entire copy of the repo, make a new origin, and then forcibly delete everything that I don't care about.
java -jar bfg-1.12.15.jar --delete-files mygame.exe
Using repo : E:\projects\mygame\.git
Exception in thread "main" org.eclipse.jgit.errors.LargeObjectException: 6975cce5a241caafe49727973d6af82cc11f42d7 exceeds size limit
at org.eclipse.jgit.internal.storage.file.UnpackedObject$LargeObject.getCachedBytes(UnpackedObject.java:392)
at org.eclipse.jgit.treewalk.CanonicalTreeParser.reset(CanonicalTreeParser.java:214)
at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator0(CanonicalTreeParser.java:248)
at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator(CanonicalTreeParser.java:226)
at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator(CanonicalTreeParser.java:70)
at org.eclipse.jgit.treewalk.TreeWalk.enterSubtree(TreeWalk.java:1210)
at org.eclipse.jgit.treewalk.TreeWalk.next(TreeWalk.java:828)
at com.madgag.git.package$RichTreeWalk$$anon$1.next(package.scala:135)
at scala.collection.Iterator$class.foreach(Iterator.scala:893)
at com.madgag.git.package$RichTreeWalk$$anon$1.foreach(package.scala:128)
at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:59)
at scala.collection.mutable.SetBuilder.$plus$plus$eq(SetBuilder.scala:20)
at scala.collection.TraversableOnce$class.to(TraversableOnce.scala:310)
at com.madgag.git.package$RichTreeWalk$$anon$1.to(package.scala:128)
at scala.collection.TraversableOnce$class.toSet(TraversableOnce.scala:304)
at com.madgag.git.package$RichTreeWalk$$anon$1.toSet(package.scala:128)
at com.madgag.git.package$.allBlobsUnder(package.scala:268)
at com.madgag.git.bfg.cleaner.protection.ProtectedObjectCensus$$anonfun$6.apply(ProtectedObjectCensus.scala:83)
at com.madgag.git.bfg.cleaner.protection.ProtectedObjectCensus$$anonfun$6.apply(ProtectedObjectCensus.scala:83)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
at scala.collection.Iterator$class.foreach(Iterator.scala:893)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
at scala.collection.MapLike$DefaultKeySet.foreach(MapLike.scala:174)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
at com.madgag.git.bfg.cleaner.protection.ProtectedObjectCensus$.apply(ProtectedObjectCensus.scala:83)
at com.madgag.git.bfg.cli.CLIConfig.objectProtection$lzycompute(CLIConfig.scala:145)
at com.madgag.git.bfg.cli.CLIConfig.objectProtection(CLIConfig.scala:145)
at com.madgag.git.bfg.cli.Main$$anonfun$1.apply(Main.scala:58)
at com.madgag.git.bfg.cli.Main$$anonfun$1.apply(Main.scala:35)
at scala.Option.map(Option.scala:146)
at com.madgag.git.bfg.cli.Main$.delayedEndpoint$com$madgag$git$bfg$cli$Main$1(Main.scala:34)
at com.madgag.git.bfg.cli.Main$delayedInit$body.apply(Main.scala:28)
at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.App$class.main(App.scala:76)
at com.madgag.git.bfg.cli.Main$.main(Main.scala:28)
at com.madgag.git.bfg.cli.Main.main(Main.scala)
You haven't used the massive-non-file-objects-sized-up-to option, which is designed to help with that. Try running with e.g. --massive-non-file-objects-sized-up-to 20M.
Maybe it would be interesting that it would suggest to use that option instead of dying completely.
Thanks
Most helpful comment
You haven't used the
massive-non-file-objects-sized-up-tooption, which is designed to help with that. Try running with e.g.--massive-non-file-objects-sized-up-to 20M.