mindsnacks/Zinc-ObjC — pull request #50 by amrox (2013-01-19 20:36:05+00:00)
Title: Reworking clean symlinks and creating repo format 2

Cleaning symlinks was kludgy. I realized it could be handled more cleanly if we treated it as migrating from repo format 1 to repo format 2.

- Created format 2 of repo index (repo.json). Only difference is that the bundle state is stored as a human-readable string instead of an int ("Available" instead of "2')
- Added support for "barrier" operations in ZincOperationQueue group, inspired by libdispatch. Barrier operations runs exclusively.
- Removed symlink cleaning from ZincGarbageCollect tasks and moved it into ZincCleanLegacySymlinks task. This task only runs if it reads a repo format of 1. When it finishes, it changes the repo format to 2 (current).
- Unified events for maintenance tasks
- (semi-unrelated) Increased to default download count to 5, and the network operations to twice the object download count