topics: make sure we commit on new parents while changing topics (issue5441)
While changing topics of a set of linear commits, we used to commit our new
changesets with new topic on parents of its predecessor i.e. changeset before
the topic change. If the topic of parent was also changed, that parent will
become obsolete and hence resulting the cnew commit in unstable state. For a set
of linear commits this repeats and we end up in a tree state as mentioned in the
bug.
This patch fixes the bug by checking whether the parent was obsoleted and if
yes, commit on the new parent.
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 = [
]
py_packages = [
'hgext3rd',
'hgext3rd.evolve',
'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
)