From 4b4442272b1529b2dff0d3ab17b22d028a957641 Mon Sep 17 00:00:00 2001
From: Pawel Szostek <pawel.szostek@gmail.com>
Date: Fri, 13 May 2011 16:32:37 +0200
Subject: [PATCH] Add revision info to modules and iteration methods

---
 synthesis/fetch.py | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/synthesis/fetch.py b/synthesis/fetch.py
index aad1e45d..b27368bf 100644
--- a/synthesis/fetch.py
+++ b/synthesis/fetch.py
@@ -71,6 +71,7 @@ class ModuleFetcher:
         os.chdir(cur_dir)
 
         module.isfetched = True
+        module.revision = rev
         module.path = os.path.join(fetchto, basename)
         return rval
 
@@ -113,6 +114,7 @@ class ModuleFetcher:
 
         os.chdir(cur_dir)
         module.isfetched = True
+        module.revision = rev
         module.path = os.path.join(fetchto, basename)
         return rval
 
@@ -132,11 +134,12 @@ class ModuleFetcher:
             ret = (url_match.group(1), None)
         return ret
 
-class ModulePool:
+class ModulePool(list):
     def __init__(self, top_module):
         self.top_module = top_module
         self.modules = []
-
+        self.add(module=top_module)
+        
     def __iter__(self):
         return self.modules.__iter__()
 
@@ -144,10 +147,10 @@ class ModulePool:
         return len(self.modules)
 
     def __contains__(self,v):
-        return v in self.files
+        return v in self.modules
 
     def __getitem__(self,v):
-        return self.files(v)
+        return self.modules[v]
 
     def __str__(self):
         return str([str(m) for m in self.modules])
@@ -160,6 +163,8 @@ class ModulePool:
             if mod.url == module.url:
                 return False
         self.modules.append(module)
+        for m in module.git + module.svn + module.local:
+            self.add(m)
         return True
 
     def fetch_all(self):
-- 
GitLab