diff options
Diffstat (limited to 'patchtracker')
-rw-r--r-- | patchtracker/DiffGzHandler.py | 21 |
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 |