pub fn next_generation(archive: &Path) -> Result<PathBuf>Expand description
repo.znippy → repo.g1.znippy → repo.g2.znippy → …
The generation lives in the stem rather than in the extension so the file is
still a .znippy to everything that dispatches on extension. A stem that
already ends in .gN is advanced; anything else starts at g1.