The way I handle it: make an 8x8 grid on a sheet of paper. Each square represents one cubic foot of material. Then, whenever a character puts something in the bag, have them write the item's name in one or more of the squares, depending on how many cubic feet of space it would take up (minimum 1 cubic foot1). When they run out of squares, the bag is full.
-----
1. A lot of players will balk at this, so expect arguments. "But I can fit all of this stuff into the same cubic foot!" My usual answer to that is "If it's so small, why are you putting it in a Bag of Holding, instead of your belt pouch?" But I digress. If players have a problem with the "one item per square" minimum, you can invite them to tediously keep track of every ounce and cubic inch of every item in every Bag of Holding instead. I recommend a spreadsheet for that.