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)