summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2013-02-20 22:33:54 +0100
committerHelmut Grohne <helmut@subdivi.de>2013-02-20 22:33:54 +0100
commit5b5dfebf7a950504c2a65d08273a58ba85df912a (patch)
treea73560f1169455b81598554ad29d23ba477c0ba4
parent072f38cdfae031bcfb3c18cd0ada89f9b9d4f94b (diff)
downloaddebian-dedup-5b5dfebf7a950504c2a65d08273a58ba85df912a.tar.gz
fix comparison of conflicting packages
-rwxr-xr-xwebapp.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/webapp.py b/webapp.py
index aa11df4..ba2fd35 100755
--- a/webapp.py
+++ b/webapp.py
@@ -164,11 +164,18 @@ class Application(object):
content_type="text/html")
def show_detail(self, package1, package2):
- details1 = self.get_details(package1)
- details2 = self.get_details(package2)
+ if package1 == package2:
+ details1 = details2 = self.get_details(package1)
+
+ self.cur.execute("SELECT a.filename, b.filename, a.size, a.function, a.hash FROM content AS a JOIN content AS b ON a.function = b.function AND a.hash = b.hash WHERE a.package = ? AND b.package = ? AND a.filename != b.filename;",
+ (package1, package1))
+ else:
+ details1 = self.get_details(package1)
+ details2 = self.get_details(package2)
+
+ self.cur.execute("SELECT a.filename, b.filename, a.size, a.function, a.hash FROM content AS a JOIN content AS b ON a.function = b.function AND a.hash = b.hash WHERE a.package = ? AND b.package = ?;",
+ (package1, package2))
- self.cur.execute("SELECT a.filename, b.filename, a.size, a.function, a.hash FROM content AS a JOIN content AS b ON a.function = b.function AND a.hash = b.hash WHERE a.package = ? AND b.package = ? AND a.filename != b.filename;",
- (package1, package2))
shared = dict()
for filename1, filename2, size, function, hashvalue in self.cur.fetchall():
shared.setdefault((filename1, filename2, size), dict())[function] = hashvalue