comparison mercurial/patch.py @ 20035:cd79d9ab5e42

makememctx: move from patch to context to break import cycle
author Augie Fackler <raf@durin42.com>
date Wed, 06 Nov 2013 22:09:15 -0500
parents 1184edaead7a
children 9f1d4323c749
comparison
equal deleted inserted replaced
20034:1e5b38a919dd 20035:cd79d9ab5e42
14 import email.Parser 14 import email.Parser
15 15
16 from i18n import _ 16 from i18n import _
17 from node import hex, short 17 from node import hex, short
18 import base85, mdiff, scmutil, util, diffhelpers, copies, encoding, error 18 import base85, mdiff, scmutil, util, diffhelpers, copies, encoding, error
19 import context
20 19
21 gitre = re.compile('diff --git a/(.*) b/(.*)') 20 gitre = re.compile('diff --git a/(.*) b/(.*)')
22 21
23 class PatchError(Exception): 22 class PatchError(Exception):
24 pass 23 pass
1438 1437
1439 def patchrepo(ui, repo, ctx, store, patchobj, strip, files=None, 1438 def patchrepo(ui, repo, ctx, store, patchobj, strip, files=None,
1440 eolmode='strict'): 1439 eolmode='strict'):
1441 backend = repobackend(ui, repo, ctx, store) 1440 backend = repobackend(ui, repo, ctx, store)
1442 return patchbackend(ui, backend, patchobj, strip, files, eolmode) 1441 return patchbackend(ui, backend, patchobj, strip, files, eolmode)
1443
1444 def makememctx(repo, parents, text, user, date, branch, files, store,
1445 editor=None):
1446 def getfilectx(repo, memctx, path):
1447 data, (islink, isexec), copied = store.getfile(path)
1448 return context.memfilectx(path, data, islink=islink, isexec=isexec,
1449 copied=copied)
1450 extra = {}
1451 if branch:
1452 extra['branch'] = encoding.fromlocal(branch)
1453 ctx = context.memctx(repo, parents, text, files, getfilectx, user,
1454 date, extra)
1455 if editor:
1456 ctx._text = editor(repo, ctx, [])
1457 return ctx
1458 1442
1459 def patch(ui, repo, patchname, strip=1, files=None, eolmode='strict', 1443 def patch(ui, repo, patchname, strip=1, files=None, eolmode='strict',
1460 similarity=0): 1444 similarity=0):
1461 """Apply <patchname> to the working directory. 1445 """Apply <patchname> to the working directory.
1462 1446