<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>e327bdcfe0ddd9a429837a266064ee846014b77e</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/96fef8d2170af042d05611a4eeea9e2c402b861d</url>
    <id>96fef8d2170af042d05611a4eeea9e2c402b861d</id>
    <committed-date>2009-04-10T18:18:11-07:00</committed-date>
    <authored-date>2009-04-10T18:18:11-07:00</authored-date>
    <message>Add link to API documentation in README.rst</message>
    <tree>1e3aa1923c78f5753b19b196a763dc8a3d2c8320</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d770aef273c65bb0aa4f2fe6370c09479f77ddcf</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/e327bdcfe0ddd9a429837a266064ee846014b77e</url>
    <id>e327bdcfe0ddd9a429837a266064ee846014b77e</id>
    <committed-date>2009-03-18T15:07:09-07:00</committed-date>
    <authored-date>2009-03-18T15:07:09-07:00</authored-date>
    <message>Add documentation

This commit adds doxygen-style comments as well as a Doxyfile. HTML
documentation can now simple be generated by typing 'doxygen' into your shell.
Please note that the documentation could still be improved a bit, but hey, it's
a start.</message>
    <tree>c8e6a358eb9ff3a9840679900dc284474a058257</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>3f0cc814b77d6dfee85896f1ae49f5277ae07ffa</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/d770aef273c65bb0aa4f2fe6370c09479f77ddcf</url>
    <id>d770aef273c65bb0aa4f2fe6370c09479f77ddcf</id>
    <committed-date>2009-03-07T11:08:13-08:00</committed-date>
    <authored-date>2009-03-07T11:08:13-08:00</authored-date>
    <message>Backend::gc() is now required to return true on success</message>
    <tree>424348433ded375a6ef9858272f910b4aea6a4f9</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e21dd78bbc454c05f6d6344c8e12dae4b69afa82</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/3f0cc814b77d6dfee85896f1ae49f5277ae07ffa</url>
    <id>3f0cc814b77d6dfee85896f1ae49f5277ae07ffa</id>
    <committed-date>2009-03-03T11:40:53-08:00</committed-date>
    <authored-date>2009-03-03T11:40:53-08:00</authored-date>
    <message>Add readme</message>
    <tree>62ce68a65faccc5016d7b6a65f03aac4a15ee493</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0aaf8b923fc2ab131f7f155dcee3f9b1eb0960d9</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/e21dd78bbc454c05f6d6344c8e12dae4b69afa82</url>
    <id>e21dd78bbc454c05f6d6344c8e12dae4b69afa82</id>
    <committed-date>2009-02-28T07:26:25-08:00</committed-date>
    <authored-date>2009-02-28T07:26:25-08:00</authored-date>
    <message>Remove unneeded 'else'</message>
    <tree>dcccc75edbc25f318e976af0b57bf33d8446537f</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4c442f6288c04d62ef5b03c02230625567a04b85</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/0aaf8b923fc2ab131f7f155dcee3f9b1eb0960d9</url>
    <id>0aaf8b923fc2ab131f7f155dcee3f9b1eb0960d9</id>
    <committed-date>2009-02-28T07:05:01-08:00</committed-date>
    <authored-date>2009-02-28T07:01:46-08:00</authored-date>
    <message>Add support for automatically guessing the best backend

Added pca::get_best_backend(), which allows configuration-less backend
selection. At the moment, only APCBackend and FileBackend are automatically
detected.
If FileBackend is not passed a directory in $options, it tries to guess the
temp directory.</message>
    <tree>11b1bde84d2d06335c00ea70e8e4761562fafa14</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d89a640706a0d358bd6a587740ab37a6323d96d4</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/4c442f6288c04d62ef5b03c02230625567a04b85</url>
    <id>4c442f6288c04d62ef5b03c02230625567a04b85</id>
    <committed-date>2008-11-27T13:18:26-08:00</committed-date>
    <authored-date>2008-11-27T13:18:26-08:00</authored-date>
    <message>Add array backend

This backend is not really intended for real use, but for testing. It won't
keep stored values when file execution is finished, therefore making it useless
for caching.</message>
    <tree>3c65d6328ee2505fd97fa0963e897e402c470bcb</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>5430e506865d50dd0e9eb7b129b1e4f2203db0d8</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/d89a640706a0d358bd6a587740ab37a6323d96d4</url>
    <id>d89a640706a0d358bd6a587740ab37a6323d96d4</id>
    <committed-date>2008-11-26T05:33:10-08:00</committed-date>
    <authored-date>2008-11-26T05:33:10-08:00</authored-date>
    <message>Add test for serialization of array values</message>
    <tree>7249975e306ad38b5fd4c026b99f68aa424a5cb4</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>cd1aefff241cff72d5714cb27e6cc4669b685cd5</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/5430e506865d50dd0e9eb7b129b1e4f2203db0d8</url>
    <id>5430e506865d50dd0e9eb7b129b1e4f2203db0d8</id>
    <committed-date>2008-11-07T07:20:25-08:00</committed-date>
    <authored-date>2008-11-07T07:20:25-08:00</authored-date>
    <message>PDO backend: Add PDOBackend::exists function</message>
    <tree>a60d57cfdd076b10136d6da3698125144647d168</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9bd6b6bd65aac6897daae3e2e9a3f8d75b45c423</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/cd1aefff241cff72d5714cb27e6cc4669b685cd5</url>
    <id>cd1aefff241cff72d5714cb27e6cc4669b685cd5</id>
    <committed-date>2008-11-07T06:40:31-08:00</committed-date>
    <authored-date>2008-11-07T06:28:44-08:00</authored-date>
    <message>PDO backend: Use mySQL add strategy for all backends

Instead of checking if a key already exists and isn't expired yet,
PDOBackend::add now does a garbage-collection run and then tries to insert the
key, returning the result of the insert query as result of the add operation.</message>
    <tree>9400bae3cf8eeeb96d9504fbfd3f241104f8d7b9</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>add532da7dddbdc0c93e5fdba71ccc74fb041417</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/9bd6b6bd65aac6897daae3e2e9a3f8d75b45c423</url>
    <id>9bd6b6bd65aac6897daae3e2e9a3f8d75b45c423</id>
    <committed-date>2008-11-06T14:42:44-08:00</committed-date>
    <authored-date>2008-11-06T14:36:45-08:00</authored-date>
    <message>Add PDO (database) backend

The PDOBackend uses a database to store cached values. It uses PDO as database
abstraction layer and SQL queries that should work with any SQL-compatible
database. However, it includes optimized queries for mySQL (more are planned).</message>
    <tree>55f9fdcb3f3be83d36432dbb0237699c240a1f37</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>bb45e91905a0808c4b5d1f13b94ff34d9a18d983</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/add532da7dddbdc0c93e5fdba71ccc74fb041417</url>
    <id>add532da7dddbdc0c93e5fdba71ccc74fb041417</id>
    <committed-date>2008-11-06T14:42:21-08:00</committed-date>
    <authored-date>2008-11-06T10:03:05-08:00</authored-date>
    <message>File backend: Use MD5 instead of SHA1 + some optimizations

The file backend now uses MD5 for both key hashing and checksumming, which
should make it a little bit faster.
Instead of storing the checksum in hexadecimal representation it is now stored
as binary string.
Removed the clearstatcache() call from FileBackend::get_filename($key)</message>
    <tree>22b188738e48f280e12a7b0baaf9bb1a9508205c</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>629b3232b991d4ff128b096f23ac15f2ed3e49c4</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/bb45e91905a0808c4b5d1f13b94ff34d9a18d983</url>
    <id>bb45e91905a0808c4b5d1f13b94ff34d9a18d983</id>
    <committed-date>2008-11-03T07:12:07-08:00</committed-date>
    <authored-date>2008-11-03T07:12:07-08:00</authored-date>
    <message>Add LICENSE (Public Domain)</message>
    <tree>6d8d29fbacda8e09eb28ab6b55e7e99236e9a0c8</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>5e48e937c47f8bac05e7941d0e861baa9e34b6c0</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/629b3232b991d4ff128b096f23ac15f2ed3e49c4</url>
    <id>629b3232b991d4ff128b096f23ac15f2ed3e49c4</id>
    <committed-date>2008-11-02T19:15:01-08:00</committed-date>
    <authored-date>2008-11-02T19:15:01-08:00</authored-date>
    <message>File backend: Fix off-by-one-error in options check</message>
    <tree>f16c62d19664378d63aa627c01fa2190942bc352</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1594a4b6f2b32d813cb4d03573e322f6109d4f8f</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/5e48e937c47f8bac05e7941d0e861baa9e34b6c0</url>
    <id>5e48e937c47f8bac05e7941d0e861baa9e34b6c0</id>
    <committed-date>2008-11-02T19:08:02-08:00</committed-date>
    <authored-date>2008-11-02T19:08:02-08:00</authored-date>
    <message>APC: Update to current backend API

APC should now behave like the memcached and file backend, the only trade-off
is a bug (php people call it anoptimazion) that ignores the ttl setting when
making requests within the same script run (see
http://pecl.php.net/bugs/bug.php?id=13331). This should not do much harm,
because caching usually only makes sense if variables are used between
different script runs.</message>
    <tree>1758bc7675410a6ae9449a5be91645f9186ca9be</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>bc2d968ed902647f35e0fcf797f4fea81a747c21</id>
      </parent>
      <parent>
        <id>85d1e1fa8056b611f6ac97f727cb5c63399d09c2</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/1594a4b6f2b32d813cb4d03573e322f6109d4f8f</url>
    <id>1594a4b6f2b32d813cb4d03573e322f6109d4f8f</id>
    <committed-date>2008-11-02T18:30:58-08:00</committed-date>
    <authored-date>2008-11-02T18:30:58-08:00</authored-date>
    <message>Merge branch 'master' into apc

Conflicts:

	tests/all_tests.php</message>
    <tree>3e1d3ef0f407fcedd81549c820d77ec5a49c97bd</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4f6bd6964f8bcb3d08146835d4b75b2c1aec292f</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/85d1e1fa8056b611f6ac97f727cb5c63399d09c2</url>
    <id>85d1e1fa8056b611f6ac97f727cb5c63399d09c2</id>
    <committed-date>2008-11-02T12:41:21-08:00</committed-date>
    <authored-date>2008-11-02T12:41:21-08:00</authored-date>
    <message>Add tests for return values + fixes

This adds tests that check that all the returned values are correct and some
fixes for both File and Memcache backend that are necessary to succeed all
tests.</message>
    <tree>b0264d2a75e4a18aa828431c73330780133ad3cb</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9a834112a828e183dedb86ff7ce44409d8722307</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/4f6bd6964f8bcb3d08146835d4b75b2c1aec292f</url>
    <id>4f6bd6964f8bcb3d08146835d4b75b2c1aec292f</id>
    <committed-date>2008-11-02T12:26:28-08:00</committed-date>
    <authored-date>2008-11-02T12:24:02-08:00</authored-date>
    <message>Add &quot;file&quot; backend

The code is not very clean yet, but here a overview of the features:
* Uses locks when possible
* Hashes keys and can put them into subdirectories
* Checksums data
* Needs manual garbage collection</message>
    <tree>e5ffd29bb86e5ad021733fdffbc885a198eb8e1c</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>629917c3f95dbf6a89d30621f73354a8f1ea8b78</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/9a834112a828e183dedb86ff7ce44409d8722307</url>
    <id>9a834112a828e183dedb86ff7ce44409d8722307</id>
    <committed-date>2008-11-02T09:22:58-08:00</committed-date>
    <authored-date>2008-11-02T09:22:58-08:00</authored-date>
    <message>Add test to check if the memcache extension is installed</message>
    <tree>7c936b162fbf6aaa7b2cbe8ae16fe338c9290f7e</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9cc2b973d9a695e9584ac004890b5601c53a979e</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/629917c3f95dbf6a89d30621f73354a8f1ea8b78</url>
    <id>629917c3f95dbf6a89d30621f73354a8f1ea8b78</id>
    <committed-date>2008-11-02T09:18:42-08:00</committed-date>
    <authored-date>2008-11-02T09:17:02-08:00</authored-date>
    <message>(Small) API changes

From now on the base class is not just an interface but an abstract class,
which provides some convenience wrappers (like Backend::exists).
When an item is not found, NULL is returned instead of FALSE.</message>
    <tree>55d53393329aaf579eab05245339f8e2e4168eac</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>971cd67f38551ef923686b22d46eede8040a0034</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/9cc2b973d9a695e9584ac004890b5601c53a979e</url>
    <id>9cc2b973d9a695e9584ac004890b5601c53a979e</id>
    <committed-date>2008-11-02T08:03:14-08:00</committed-date>
    <authored-date>2008-11-02T08:03:14-08:00</authored-date>
    <message>Fix intendation in memcache test</message>
    <tree>ebacba1a396548048b10af557db1b9e969cc6c92</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>971cd67f38551ef923686b22d46eede8040a0034</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/bc2d968ed902647f35e0fcf797f4fea81a747c21</url>
    <id>bc2d968ed902647f35e0fcf797f4fea81a747c21</id>
    <committed-date>2008-11-01T18:32:27-07:00</committed-date>
    <authored-date>2008-11-01T18:32:27-07:00</authored-date>
    <message>Add APC backend (buggy)

This adds APC (Alternative PHP Cache) as a cache backend. However, there is a
bug in APC which prevents expired variables from being cleared, which means
that the expire setting does not work and that the unit tests fail.</message>
    <tree>81381ea2b939530b69166ddbe351c5cecb14913e</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>465c672b3b5b74b94572716ec2516fc9b39b9b6e</id>
      </parent>
    </parents>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/971cd67f38551ef923686b22d46eede8040a0034</url>
    <id>971cd67f38551ef923686b22d46eede8040a0034</id>
    <committed-date>2008-11-01T17:25:43-07:00</committed-date>
    <authored-date>2008-11-01T17:25:43-07:00</authored-date>
    <message>Add test to check if memcached is even running</message>
    <tree>0b72c71c77c791ea4f21b52144a6d04713520734</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
  <commit>
    <parents type="array"/>
    <author>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </author>
    <url>http://github.com/soult/pca/commit/465c672b3b5b74b94572716ec2516fc9b39b9b6e</url>
    <id>465c672b3b5b74b94572716ec2516fc9b39b9b6e</id>
    <committed-date>2008-11-01T16:33:44-07:00</committed-date>
    <authored-date>2008-11-01T16:33:44-07:00</authored-date>
    <message>Initial commit

So far only basic stuff:
* The cache interface
* Some unit tests
* A memcache backend</message>
    <tree>a4947230f2ff31252552fc6368ccf24c52d7a4bc</tree>
    <committer>
      <name>David Triendl</name>
      <email>david@triendl.name</email>
    </committer>
  </commit>
</commits>
