<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>cache.py</filename>
    </added>
    <added>
      <filename>tests/test-cache.py</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -7,6 +7,7 @@ from datetime import datetime, timedelta
 from users import users, mailSuffix
 from fnmatch import fnmatch
 from clearcase import cc
+from cache import Cache, Path
 
 &quot;&quot;&quot;
 Things remaining:
@@ -23,6 +24,8 @@ ARGS = {
     'load': 'Loads the contents of a previously saved lshistory file',
 }
 
+cache = Cache(GIT_CIR)
+
 def main(stash=False, dry_run=False, lshistory=False, load=None):
     if not (stash or dry_run or lshistory):
         checkPristine()
@@ -93,7 +96,7 @@ def parseHistory(lines):
         cstype = split[0]
         if cstype in TYPES:
             cs = TYPES[cstype](split, comment)
-            if filterBranches(cs.version):
+            if filterBranches(cs.version) and cache.isChild(Path(cs.file, cs.version)):
                 changesets.append(cs)
     last = None
     comment = None
@@ -154,6 +157,8 @@ class Group:
             files.append(file.file)
         for file in self.files:
             file.add(files)
+        cache.write()
+        git_exec(['add', cache.FILE])
         env = {}
         user = users.get(self.user, self.user)
         user = str(user)
@@ -190,6 +195,7 @@ class Changeset(object):
         else:
             os.chmod(toFile, stat.S_IWRITE)
         git_exec(['add', file], errors=False)
+        cache.update(Path(file, version))
 
 class Uncataloged(Changeset):
     def add(self, files):
@@ -203,6 +209,7 @@ class Uncataloged(Changeset):
                 continue
             if line.startswith('&lt;'):
                 git_exec(['rm', '-r', getFile(line)], errors=False)
+                cache.remove(getFile(line))
             elif line.startswith('&gt;'):
                 added = getFile(line)
                 cc_added = join(CC_DIR, added)</diff>
      <filename>rebase.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1e19196b42b4c5199ecb0c2efe26844582a835d4</id>
    </parent>
  </parents>
  <author>
    <name>Charles O'Farrell</name>
    <email>charleso@charleso.org</email>
  </author>
  <url>http://github.com/charleso/git-cc/commit/b3c819f5888367bc5c29c7c40b78353c86c2af71</url>
  <id>b3c819f5888367bc5c29c7c40b78353c86c2af71</id>
  <committed-date>2009-03-05T23:36:16-08:00</committed-date>
  <authored-date>2009-03-04T02:31:50-08:00</authored-date>
  <message>Initial work on cache</message>
  <tree>b0dcd14b29606470f1dd5eefab14f6804edfb5bd</tree>
  <committer>
    <name>Charles O'Farrell</name>
    <email>charleso@charleso.org</email>
  </committer>
</commit>
