memctx: allow extensions to determine what filectxfn should do

Rev 2eef89bfd70d switched the contract for filectxfn from "raise IOError if
file is missing" to "return None if file is missing". Out of tree extensions
need to be updated for that, but for extensions interested in compatibility
with both Mercurial <= 3.1 and default, it is next to impossible to introspect
core Mercurial to figure out what to do.

This patch adds a field to memctx for extensions to use.
This commit is contained in:
Siddharth Agarwal 2014-08-30 05:29:38 -07:00
parent 94580f82da
commit 65cbe9daf5

View File

@ -1593,6 +1593,12 @@ class memctx(committablectx):
supported by util.parsedate() and defaults to current date, extra
is a dictionary of metadata or is left empty.
"""
# Mercurial <= 3.1 expects the filectxfn to raise IOError for missing files.
# Extensions that need to retain compatibility across Mercurial 3.1 can use
# this field to determine what to do in filectxfn.
_returnnoneformissingfiles = True
def __init__(self, repo, parents, text, files, filectxfn, user=None,
date=None, extra=None, editor=False):
super(memctx, self).__init__(repo, text, user, date, extra)