Mercurial > hg
changeset 2837:19b3bc840182
Merge: save away mode bit so that we don't need manifest later
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 09 Aug 2006 17:11:01 -0500 |
parents | e78cad1f6b1f |
children | b11c014dcbd9 |
files | mercurial/merge.py |
diffstat | 1 files changed, 11 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/merge.py Wed Aug 09 15:03:46 2006 -0500 +++ b/mercurial/merge.py Wed Aug 09 17:11:01 2006 -0500 @@ -157,19 +157,19 @@ # "if we changed or they changed, change in merge" a, b, c = mfa.execf(f), mfw.execf(f), mf2.execf(f) mode = ((a^b) | (a^c)) ^ a - merge[f] = (m1.get(f, nullid), m2[f], mode) + merge[f] = (mode, m1.get(f, nullid), m2[f]) s = 1 # are we clobbering? # is remote's version newer? # or are we going back in time? elif overwrite or m2[f] != a or (p2 == pa and mw[f] == m1[f]): repo.ui.debug(_(" remote %s is newer, get\n") % f) - get[f] = m2[f] + get[f] = (m2.execf(f), m2[f]) s = 1 elif f in umap or f in added: # this unknown file is the same as the checkout # we need to reset the dirstate if the file was added - get[f] = m2[f] + get[f] = (m2.execf(f), m2[f]) if not s and mfw.execf(f) != mf2.execf(f): if overwrite: @@ -221,14 +221,14 @@ (_("remote changed %s which local deleted\n") % f) + _("(k)eep or (d)elete?"), _("[kd]"), _("k")) if r == _("k"): - get[f] = n + get[f] = (m2.execf(f), n) elif f not in ma: repo.ui.debug(_("remote created %s\n") % f) - get[f] = n + get[f] = (m2.execf(f), n) else: if overwrite or p2 == pa: # going backwards? repo.ui.debug(_("local deleted %s, recreating\n") % f) - get[f] = n + get[f] = (m2.execf(f), n) else: repo.ui.debug(_("local deleted %s\n") % f) @@ -236,7 +236,7 @@ if overwrite: for f in merge: - get[f] = merge[f][1] + get[f] = merge[f][:2] merge = {} if linear_path or overwrite: @@ -254,12 +254,13 @@ files = get.keys() files.sort() for f in files: + flag, node = get[f] if f[0] == "/": continue repo.ui.note(_("getting %s\n") % f) - t = repo.file(f).read(get[f]) + t = repo.file(f).read(node) repo.wwrite(f, t) - util.set_exec(repo.wjoin(f), mf2.execf(f)) + util.set_exec(repo.wjoin(f), flag) if not partial: if branchmerge: repo.dirstate.update([f], 'n', st_mtime=-1) @@ -272,7 +273,7 @@ files.sort() for f in files: repo.ui.status(_("merging %s\n") % f) - my, other, flag = merge[f] + flag, my, other = merge[f] ret = merge3(repo, f, my, other, xp1, xp2) if ret: unresolved.append(f)