summaryrefslogtreecommitdiff
path: root/patchtracker
diff options
context:
space:
mode:
Diffstat (limited to 'patchtracker')
-rw-r--r--patchtracker/DiffGzHandler.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/patchtracker/DiffGzHandler.py b/patchtracker/DiffGzHandler.py
index 769ce18..75b6037 100644
--- a/patchtracker/DiffGzHandler.py
+++ b/patchtracker/DiffGzHandler.py
@@ -39,20 +39,17 @@ class DiffGzHandler:
def series(self, ghost=False):
patches = None
- embedded = self.filterdiff(include='debian/patches*')
# XXX *cough* cache *cough*
- if embedded.lines():
- td = tempfile.mkdtemp()
- i,o,e=os.popen3("patch -d %s -p3"%(td))
- o.close()
- i.write(str(embedded))
- i.close()
- err = e.read()
- if len(err):
- raise Exception("unable to extract series patches:\n"+err)
- patches = PatchSeries(td, ghost=ghost)
- os.system("rm -rf %s"%(td))
+ td = tempfile.mkdtemp()
+ i,o,e=os.popen3("filterdiff -z -p 1 -i 'debian/patches*' %s | patch -d %s -p3" % (self.diff, td))
+ o.close()
+ i.close()
+ err = e.read()
+ if len(err):
+ raise Exception("unable to extract series patches:\n"+err)
+ patches = PatchSeries(td, ghost=ghost)
+ os.system("rm -rf %s"%(td))
return patches