cvmfs/cvmfs — pull request #612 by reneme (2014-11-25 10:16:13+00:00)
Title: Feature: Integrate Timestamp Based Garbage Collection

This adds the possibility to do a garbage collection based on revision time stamps. The `cvmfs_server gc` command can now work in the following modes:
```bash
# delete all revisions except tagged ones and HEAD
cvmfs_server gc foo.repo.name

# delete all revisions except tagged ones + previous revisions
# Note: each tag retains a ancestor history of revisions
cvmfs_server gc -r

# delete all revisions that are older than
# with being a timespec readable by `date --date=''`
# Like: 'yesterday', '3 days ago', 'last week', '15.11.2014', ...
cvmfs_server gc -t

# a mixture of -r and -t is prohibited
```

With the timestamp based garbage collection it is potentially possible to delete the HEAD revision as well, hence this is double-checked before.

**Note:** Based on [Feature: Garbage Collection](https://github.com/cvmfs/cvmfs/pull/605), [Feature: Server Integration of the Garbage Collection](https://github.com/cvmfs/cvmfs/pull/606), [Feature: Add a MockHistory in the Unit Test Suite](https://github.com/cvmfs/cvmfs/pull/607), [Fix: Garbage Collection Code Base](https://github.com/cvmfs/cvmfs/pull/608), [Feature: CatalogTraversal can have a Timestamp Threshold](https://github.com/cvmfs/cvmfs/pull/610) and [Fix: Test 560 did not Properly Use $CVMFS_TEST_REPO](https://github.com/cvmfs/cvmfs/pull/611).