From 0026657e1035ce6d22b0a0cd7dbbe874bc3530e6 Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Wed, 7 Feb 2007 12:54:46 +0000 Subject: [PATCH] files: old = ["a", "b", "c"] new = ["d", "e", "c"] If all these files have same hash, we can use old[0] for all the copy to new location operations. So we have a -> d a -> e a -> c for relocations. But one problem is, old already has "c". So an "a -> c" sym link copy ends with "File exists" error. --- pisi/delta.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pisi/delta.py b/pisi/delta.py index 1cf33b5e..93f211d7 100644 --- a/pisi/delta.py +++ b/pisi/delta.py @@ -118,6 +118,7 @@ def find_relocations(oldfiles, newfiles): relocations = [] for hash in files_new.keys(): if hash in files_old: + files_new[hash] = filter(lambda x:x not in files_old[hash], files_new[hash]) for i in range(len(files_new[hash])): if files_old[hash][0].path != files_new[hash][i].path: relocations.append((files_old[hash][0], files_new[hash][i]))