52 lines
No EOL
1.1 KiB
Python
52 lines
No EOL
1.1 KiB
Python
import os
|
|
import sys
|
|
import shutil
|
|
import glob
|
|
|
|
try:
|
|
input = raw_input
|
|
except NameError:
|
|
pass
|
|
|
|
def program_path():
|
|
pp = os.path.realpath(sys.argv[0])
|
|
return os.path.split(pp)[0]
|
|
|
|
pp = program_path()
|
|
|
|
def resolve(cf):
|
|
for f, fp, fn, fe, i in cf:
|
|
base = os.path.split(fp)[0]
|
|
fo = fn[:i] + fe
|
|
fpo = os.path.join(base, fo)
|
|
ft = fn[:i] + " (temp " + fn[i+19:] + fe
|
|
fpt = os.path.join(base, ft)
|
|
print("Renaming %s to %s" % (fp, fpo))
|
|
if os.path.exists(fpo):
|
|
os.rename(fp, fpt)
|
|
os.rename(fpo, fp)
|
|
os.rename(fpt, fpo)
|
|
else:
|
|
os.rename(fp, fpo)
|
|
|
|
rootdir=os.path.join(pp, '..', 'hardlinks')
|
|
for base, dirs, files in os.walk(rootdir):
|
|
conflicts = {}
|
|
for f in files:
|
|
fp = os.path.join(base, f)
|
|
fn, fe = os.path.splitext(f)
|
|
i = fn.find(" (resolved confict ")
|
|
if i != -1:
|
|
print(fn)
|
|
conflict_id = fn[i+19:-1]
|
|
conflict_id = ''
|
|
if not conflict_id in conflicts:
|
|
conflicts[conflict_id] = []
|
|
conflicts[conflict_id] += [(f,fp,fn,fe,i)]
|
|
|
|
request = None
|
|
fixed_answer = False
|
|
for cd, cf in conflicts.items():
|
|
print("Conflict %s in %s (%d files):" % (cd, base, len(cf)))
|
|
resolve(cf)
|
|
|