--- 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.