I've been thinking about this a bit, and here's the question: what happens once we introduce different compression methods? Each method would have different compression levels. I see three options possible:

* Interpret the passed value according to the currently chosen compression scheme. This would work, but would be error-prone (e.g. people copy-pasting instructions from forums which used different default repo compression method would use wrong compression levels because they were meant for e.g. gzip and not lzma)
* Have a unified scale for all methods (say, from 0 to 10, 0 being the least, 10 being the most extreme). Clearly this requires translation to the real level for each method, which could only approximate those. Since this would only allow passing some of the possible levels, and since all methods have different and intricate trade-offs at different possible levels, I don't think this way is nice.
* Introduce --lzma-compression-level. for lzma, and add new flags for new methods. The program should then fail if an attempt to set the level for an inactive method is made (to help ensure user uses the right flag). I think that would be the most sensible option.

What do you think?