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.
This commit is contained in:
Faik Uygur
2007-02-07 12:54:46 +00:00
parent 01382d765b
commit 0026657e10
+1
View File
@@ -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]))