support different kinds of repacking.  (an aggressive git gc is fine for a local repository, but making more smaller pack files is likely to be better for a public repository, since it makes it possible to efficiently publish objects without repacking on the fly.)
why did i ever think returning error codes is okay
oh, yeah, i actually wanted that code sometimes.
allow a path argument for where to put the imported repo.