diff -r 6062593d8b06 -r 43eecb4e23f8 hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py Fri May 23 13:10:31 2014 -0700 +++ b/hgext/largefiles/overrides.py Fri Feb 28 02:25:58 2014 +0100 @@ -410,14 +410,13 @@ if overwrite: return actions - removes = set(a[0] for a in actions if a[1] == 'r') - processed = [] + removes = set(a[0] for a in actions['r']) - for action in actions: - f, m, args, msg = action - + newglist = [] + for action in actions['g']: + f, args, msg = action splitstandin = f and lfutil.splitstandin(f) - if (m == "g" and splitstandin is not None and + if (splitstandin is not None and splitstandin in p1 and splitstandin not in removes): # Case 1: normal file in the working copy, largefile in # the second parent @@ -427,12 +426,11 @@ 'use (l)argefile or keep (n)ormal file?' '$$ &Largefile $$ &Normal file') % lfile if repo.ui.promptchoice(msg, 0) == 0: - processed.append((lfile, "r", None, msg)) - processed.append((standin, "g", (p2.flags(standin),), msg)) + actions['r'].append((lfile, None, msg)) + newglist.append((standin, (p2.flags(standin),), msg)) else: - processed.append((standin, "r", None, msg)) - elif (m == "g" and - lfutil.standin(f) in p1 and lfutil.standin(f) not in removes): + actions['r'].append((standin, None, msg)) + elif lfutil.standin(f) in p1 and lfutil.standin(f) not in removes: # Case 2: largefile in the working copy, normal file in # the second parent standin = lfutil.standin(f) @@ -441,14 +439,17 @@ 'keep (l)argefile or use (n)ormal file?' '$$ &Largefile $$ &Normal file') % lfile if repo.ui.promptchoice(msg, 0) == 0: - processed.append((lfile, "r", None, msg)) + actions['r'].append((lfile, None, msg)) else: - processed.append((standin, "r", None, msg)) - processed.append((lfile, "g", (p2.flags(lfile),), msg)) + actions['r'].append((standin, None, msg)) + newglist.append((lfile, (p2.flags(lfile),), msg)) else: - processed.append(action) + newglist.append(action) - return processed + newglist.sort() + actions['g'] = newglist + + return actions # Override filemerge to prompt the user about how they wish to merge # largefiles. This will handle identical edits without prompting the user.