evolve: use cmdrewrite.amend() instead of creating a new commit
This patch backs out changeset 88601e1cd5d8.
We replaced cmdrewrite.amend() with creating new commit because using amend(), a
high level function was not good and creating a new commit gave us more control
over things.
**HOWEVER** to get more control, you need to get arrange all the pieces together
perfectly. Creating a new commit, the existing logic has some bugs around
dirstate handling, the `repo.dirstate.setparents()` call especially. Sometimes
this fixes the dirstate correctly sometimes not.
As Pierre-Yves David said, "Having a "clumsy" implementation with the right
behavior is usually a good first step. So having an amend based implementation
seems like a good first step.", let's take a step back and get back using amend
so that we can have a correct basic implementation which is bug free.
import os
from distutils.core import setup
from os.path import dirname, join
META_PATH = 'hgext3rd/evolve/metadata.py'
def get_metadata():
meta = {}
fullpath = join(dirname(__file__), META_PATH)
execfile(fullpath, meta)
return meta
def get_version():
'''Read version info from a file without importing it'''
return get_metadata()['__version__']
def min_hg_version():
'''Read version info from a file without importing it'''
return get_metadata()['minimumhgversion']
py_modules = [
'hgext3rd.serverminitopic',
]
py_packages = [
'hgext3rd',
'hgext3rd.evolve',
'hgext3rd.evolve.thirdparty',
'hgext3rd.topic',
]
if os.environ.get('INCLUDE_INHIBIT'):
py_modules.append('hgext3rd.evolve.hack.inhibit')
py_modules.append('hgext3rd.evolve.hack.directaccess')
setup(
name='hg-evolve',
version=get_version(),
author='Pierre-Yves David',
author_email='pierre-yves.david@ens-lyon.org',
maintainer='Pierre-Yves David',
maintainer_email='pierre-yves.david@ens-lyon.org',
url='https://www.mercurial-scm.org/doc/evolution/',
description='Flexible evolution of Mercurial history.',
long_description=open('README').read(),
keywords='hg mercurial',
license='GPLv2+',
py_modules=py_modules,
packages=py_packages
)