amend: don't remove unselected removals from memctx
When there are removed files in the working copy and they are not
selected to be amended into the parent, the `filectxfn` we create for
the `memctx` would still return `None` before this patch. That's
clearly incorrect; we should return the `filectx` from the unamended
commit. Somehow it seems to not matter much except for the case with
copies stored in changesets.
Thanks to Kyle Lippincott for doing all the debugging and identifying
the fix for this issue.
Differential Revision: https://phab.mercurial-scm.org/D12573
from __future__ import absolute_import
from mercurial.i18n import _
from mercurial import (
hg,
registrar,
)
from mercurial.utils import (
urlutil,
)
cmdtable = {}
command = registrar.command(cmdtable)
@command(b'getflogheads', [], b'path')
def getflogheads(ui, repo, path):
"""
Extension printing a remotefilelog's heads
Used for testing purpose
"""
dest = urlutil.get_unique_pull_path(b'getflogheads', repo, ui)[0]
peer = hg.peer(repo, {}, dest)
try:
flogheads = peer.x_rfl_getflogheads(path)
finally:
peer.close()
if flogheads:
for head in flogheads:
ui.write(head + b'\n')
else:
ui.write(_(b'EMPTY\n'))