mercurial/context.py
changeset 21689 503bb3af70fe
parent 21688 cc677803bad4
child 21690 da352312fa18
equal deleted inserted replaced
21688:cc677803bad4 21689:503bb3af70fe
   333 
   333 
   334 def makememctx(repo, parents, text, user, date, branch, files, store,
   334 def makememctx(repo, parents, text, user, date, branch, files, store,
   335                editor=None):
   335                editor=None):
   336     def getfilectx(repo, memctx, path):
   336     def getfilectx(repo, memctx, path):
   337         data, (islink, isexec), copied = store.getfile(path)
   337         data, (islink, isexec), copied = store.getfile(path)
   338         return memfilectx(path, data, islink=islink, isexec=isexec,
   338         return memfilectx(repo, path, data, islink=islink, isexec=isexec,
   339                                   copied=copied)
   339                                   copied=copied, memctx=memctx)
   340     extra = {}
   340     extra = {}
   341     if branch:
   341     if branch:
   342         extra['branch'] = encoding.fromlocal(branch)
   342         extra['branch'] = encoding.fromlocal(branch)
   343     ctx =  memctx(repo, parents, text, files, getfilectx, user,
   343     ctx =  memctx(repo, parents, text, files, getfilectx, user,
   344                           date, extra, editor)
   344                           date, extra, editor)
  1587         return self._repo.commitctx(self)
  1587         return self._repo.commitctx(self)
  1588 
  1588 
  1589 class memfilectx(committablefilectx):
  1589 class memfilectx(committablefilectx):
  1590     """memfilectx represents an in-memory file to commit.
  1590     """memfilectx represents an in-memory file to commit.
  1591 
  1591 
  1592     See memctx for more details.
  1592     See memctx and commitablefilectx for more details.
  1593     """
  1593     """
  1594     def __init__(self, path, data, islink=False, isexec=False, copied=None):
  1594     def __init__(self, repo, path, data, islink=False,
       
  1595                  isexec=False, copied=None, memctx=None):
  1595         """
  1596         """
  1596         path is the normalized file path relative to repository root.
  1597         path is the normalized file path relative to repository root.
  1597         data is the file content as a string.
  1598         data is the file content as a string.
  1598         islink is True if the file is a symbolic link.
  1599         islink is True if the file is a symbolic link.
  1599         isexec is True if the file is executable.
  1600         isexec is True if the file is executable.
  1600         copied is the source file path if current file was copied in the
  1601         copied is the source file path if current file was copied in the
  1601         revision being committed, or None."""
  1602         revision being committed, or None."""
  1602         self._path = path
  1603         super(memfilectx, self).__init__(repo, path, None, memctx)
  1603         self._data = data
  1604         self._data = data
  1604         self._flags = (islink and 'l' or '') + (isexec and 'x' or '')
  1605         self._flags = (islink and 'l' or '') + (isexec and 'x' or '')
  1605         self._copied = None
  1606         self._copied = None
  1606         if copied:
  1607         if copied:
  1607             self._copied = (copied, nullid)
  1608             self._copied = (copied, nullid)